Pour autant que je sais qu'il n'y a pas un plugin Maven soit pour Daemon Apache ou Akuma. Bien que vous puissiez tenter de les invoquer depuis une build Maven en utilisant le maven-exec-plugin.
En ce qui concerne vos entreprises des réserves quant à l'utilisation de produits sous licence GPL, il vaut la peine de lire sur les conséquences de l'utilisation. Ce n'est pas aussi virulent que les entreprises craignent. Voici un interpretation of the GPL. Bien entendu, cela n'a aucun poids juridique (et peut ne pas être correct ou soutenu par un précédent, je ne suis pas un avocat), mais pourrait suffire à vous permettre d'engager une conversation avec votre personnel juridique.
De la page référencée:
combinant simplement une œuvre protégée avec un autre travail ne crée pas une œuvre dérivée. L'œuvre originale protégée par des droits d'auteur doit être modifiée d'une manière ou d'une autre. Le travail dérivé qui en résulte doit lui-même "représenter un travail d'auteur original". Ainsi, si le détenteur de licence ne modifie pas le programme original sous licence GPL, mais l'exécute simplement, il ne crée pas de travail dérivé.
Il est le Appassembler Maven plugin que je pense ne que vous avez besoin (même si elle ne crée wrappers JSW). Il crée un script shell (et un fichier bat) et collecte tous les fichiers jar de l'application dans un répertoire. Il peut éventuellement être configured pour créer des configurations Daemon JSW.
Voici un exemple de configuration qui générera l'application autonome dans le dossier cible/appassembler et génèrera les fichiers d'encapsulation JSW dans le répertoire target/appassembler/jsw/myApp. Notez que l'objectif d'assemblage est lié à la phase de test d'intégration pour garantir la création du fichier jar du projet. Pour générer la course de sortie mvn vérifier ou simplement générer les enveloppes de services exécuter mvn package:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>assemble-standalone</id>
<phase>integration-test</phase>
<goals>
<goal>assemble</goal>
</goals>
<configuration>
<programs>
<program>
<mainClass>name.seller.rich.MyMainClass</mainClass>
<name>myShellScript</name>
</program>
</programs>
<platforms>
<platform>windows</platform>
<platform>unix</platform>
</platforms>
<!--collect all jars into the lib directory-->
<repositoryLayout>flat</repositoryLayout>
<repositoryName>lib</repositoryName>
</configuration>
</execution>
<execution>
<id>generate-jsw-scripts</id>
<phase>package</phase>
<goals>
<goal>generate-daemons</goal>
</goals>
<configuration>
<!--declare the JSW config -->
<daemons>
<daemon>
<id>myApp</id>
<mainClass>name.seller.rich.MyMainClass</mainClass>
<commandLineArguments>
<commandLineArgument>start</commandLineArgument>
</commandLineArguments>
<platforms>
<platform>jsw</platform>
</platforms>
</daemon>
</daemons>
<target>${project.build.directory}/appassembler</target>
</configuration>
</execution>
</executions>
</plugin>
Pour référence, les fichiers générés sont les suivants:
myApp\bin\myApp
myApp\bin\myApp.bat
myApp\bin\wrapper-linux-x86-32
myApp\bin\wrapper-macosx-universal-32
myApp\bin\wrapper-solaris-x86-32
myApp\bin\wrapper-windows-x86-32.exe
myApp\conf\wrapper.conf
myApp\lib\libwrapper-linux-x86-32.so
myApp\lib\libwrapper-macosx-universal-32.jnilib
myApp\lib\libwrapper-solaris-x86-32.so
myApp\lib\wrapper-windows-x86-32.dll
myApp\lib\wrapper.jar
@ Rich - merci pour la répondre. J'avais initialement fait quelque chose comme ça, mais la licence de JSW est trop restrictive pour moi (enfin mon employeur!). Par ailleurs, est-il possible de configurer Appassembler à partir du projet principal POM sur un projet avec plusieurs modules? La seule façon de le faire était de créer un nouveau module avec le travail spécifique de créer les scripts de service (et RPM dans mon cas) qui ont fonctionné après que tous les autres modules ont été empaquetés ... – Lehane
Si vous exécutez l'assemblage but sur le module qui dépend de tous les autres, ces dépendances seront empaquetées dans le répertoire appassembler. Donc, il ne serait probablement pas exécuté sur votre pom agrégateur, mais sur le module avec la classe "principale" –
aussi la licence GPL n'est pas aussi restrictive que les sociétés ont tendance à le croire. Avoir une lecture de ceci: http://www.sitepoint.com/article/public-license-explained/ –