J'ai un programme de ligne de commande java existant, qui prend une bazillion d'arguments et les analyse en utilisant un excellent args4j. Je veux maintenant faire un mojo plugin maven qui va exécuter le code Java contenu dans cette application. Pour l'instant, j'ai essayé la méthode de base: la réplication de chaque argument de ligne de commande dans un paramètre mojo. Je trouve cela exceptionnellement ennuyeux et sujet aux erreurs, car les annotations maven mojo javadoc sont beaucoup moins complètes et intégrées que les annotations args4j. Donc, en utilisant maven 3, y a-t-il un meilleur moyen d'exécuter mon exécutable en tant que mojo maven? Oh, s'il vous plaît, ne me parlez pas de exec-maven-plugin, car je trouve cela trop limité dans ce cas (mon exécutable devra être exécuté en utilisant une combinaison de paramètres de projet et ceux du profil utilisateur, et je suppose que j'appelle simplement maven-exec- le plugin ne fera pas l'affaire).Comment regrouper un exécutable java existant dans un mojo maven
Répondre
Bien que @khmarbaise's answer est parfaitement vrai d'un point de vue général, je voudrais l'étendre un peu. Mon application de ligne de commande autonome utilise args4j, mais je pense que le processus peut être assez bien copié en utilisant Commons CLI ou (encore plus) JCommander qui repose sur les mêmes annotations en ligne de commande dans un bean principal. Donc, ce que j'ai fait est un mojo maven qui, en utilisant l'introspection, obtient la liste des principaux arguments de la ligne de commande du bean. Pour chacun de ces arguments, j'attends qu'une propriété soit présente dans les informations de projet/paramètres. Si cette propriété est présente, je construis une fausse ligne de commande en utilisant l'option et enfin associée.
Une fois que j'ai parcouru toutes les options (stockées en tant que propriétés maven), je peux utiliser args4j pour remplir mon bean, puis exécuter ce bean en utilisant sa commande principale.
Je pense que cette approche pourrait être assez bien généralisée, à condition que votre application ait un ensemble de drapeaux et une méthode run()
sans-args.
La seule façon est via les paramètres de mojo parce que c'est la manière de Maven en particulier pour Maven Plugins. Ce qui m'a manqué pour définir un fichier de propriétés qui contient la configuration comme une alternative aux paramètres de mojo
Mais je pense que pour Maven Plugins, la meilleure pratique est d'avoir des paramètres Mojo.
Je suis désolé de ne pas accepter votre réponse, mais j'ai trouvé une meilleure solution et l'expliquera dans une réponse ultérieure. S'il vous plaît excusez mon comportement. – Riduidel
- 1. Comment définir un mojo par défaut pour un plugin maven
- 2. maven utilise @component pour injecter un mojo
- 3. Déclenchement de requêtes SOAP dans un Mojo Maven
- 4. API de filtrage maven dans MOJO
- 5. Importer un projet maven existant dans Eclipse
- 6. Mojo Mojo pour les dossiers unzip?
- 7. meilleure façon d'étendre un projet java/maven existant
- 8. Comment dire à Maven de construire un fichier exécutable
- 9. Erreurs avec Maven Mojo sql: execute
- 10. Archetype Maven pour modifier un projet existant?
- 11. Comment intégrer maven 2 dans un projet netbeans existant?
- 12. Ecrire un plugin Maven/Mojo: comment faire un but force l'exécution d'autres objectifs?
- 13. Plug-in Maven Mojo simple: Paramètre booléen
- 14. Ajouter un mojo au cycle de vie personnalisé défini par un autre plugin maven
- 15. Comment créer un fichier exécutable en Java
- 16. Comment faire un programme exécutable en Java?
- 17. Appeler un exécutable Java dans bash
- 18. Comment vérifier un exécutable existant avant de l'exécuter dans un événement de post-construction dans VS2008?
- 19. Mojo SDK - régler un minuteur
- 20. Intégrer Clojure dans un projet Java existant?
- 21. peut-on configurer maven dans un projet existant?
- 22. Injecter Groovy dans le projet Java Maven existant
- 23. java eclipse créer un fichier exécutable jar
- 24. Maven ne peut pas trouver des descripteurs de mojo JRuby
- 25. comment exécuter un fichier java exécutable jar dans un autre programme java
- 26. Appel de différentes méthodes dans un thread exécutable dans java
- 27. Regrouper un tableau dans un ASP classique?
- 28. Comment regrouper ces objets dans un hachage?
- 29. Comment écrire dans un fichier XML existant en utilisant java
- 30. Inclure un fichier exécutable dans un autre exécutable
De combien d'arguments parlons-nous? – khmarbaise
@khmarbaise entre 10 et 20 – Riduidel
Je pense que beaucoup de ces paramètres ont des valeurs par défaut? Je connais beaucoup de plugins qui ont plus de paramètres. – khmarbaise