Je souhaite lancer une simple commande exec après la phase d'installation de maven. Quelle est la manière la plus simple possible d'y parvenir? (Sans ajouter de nouveaux plug-ins)Exécution d'une tâche post maven install
Répondre
Si vous voulez exécuter cette commande dans le cadre du cycle de vie de construction normale, il n'y a pas d'autre moyen que la liaison du exec
objectif de la phase install
:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<id>my-exec</id>
<phase>install</phase>
<goals>
<goal>exec</goal>
</goals>
<inherited>false</inherited>
</execution>
</executions>
<configuration>
<executable>COMMAND</executable>
</configuration>
</plugin>
</plugins>
</build>
J'ai fait un test simple à l'aide la configuration ci-dessus (en utilisant comme ls
« commande ») dans un projet maven fraîchement créé et exécutant mvn install
produit la sortie suivante:
$ mvn install [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building maven-exec-testcase [INFO] task-segment: [install] [INFO] ------------------------------------------------------------------------ ... [INFO] [install:install {execution: default-install}] [INFO] Installing /home/pascal/Projects/maven-exec-testcase/target/maven-exec-testcase-1.0-SNAPSHOT.jar to /home/pascal/.m2/repository/com/mycompany/app/maven-exec-testcase/1.0-SNAPSHOT/maven-exec-testcase-1.0-SNAPSHOT.jar [INFO] [exec:exec {execution: my-exec}] [INFO] pom.xml [INFO] src [INFO] target [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 12 seconds [INFO] Finished at: Tue Jan 05 19:26:04 CET 2010 [INFO] Final Memory: 11M/75M [INFO] ------------------------------------------------------------------------
Comme nous pouvons le voir, la commande est exécutée à la fin de la phase install
(après la copie de l'artefact dans le référentiel local).
Et si vous ne voulez vraiment pas ajouter l'extrait à votre pom, alors vous devrez appeler explicitement exec:exec
après install
sur la ligne de commande comme suggéré par whaley.
Le cycle de vie par défaut Maven se termine par l'installer et déployer objectifs - il n'y a pas de version avant et après de ces objectifs.
Les options possibles seraient:
Bind l'exécutif: exec mojo à la phase de déploiement. Je vous préviens contre cette idée car la phase de déploiement est vraiment destinée à déployer des artefacts dans un référentiel maven distant.
Exécuter l'exécutif: exec mojo après l'installation objectif dans votre appel mvn ... par exemple:
mvn clean install exec: exec -Dexec.executable = "yourcommand" -Dexec.args = "arguments"
Si vous avez un projet multi-module, créez un autre module à la fin de votre <modules> et liez exec: exec à l'un des objectifs habituels dans ce module. Cela forcera ce module particulier à s'exécuter en supposant que les autres criteria the reactor looks at ne sont pas remplies. Une stratégie commune que j'utilise avec les projets Maven sur lesquels je travaille est "en cas de doute, créez un autre module".
- 1. Maven install-fichier ne génère pas pom.xml
- 2. Wix, PostgreSQL install, exécution des scripts Postgresql
- 3. Exécuter une tâche Ant avec Maven
- 4. Exécution d'une tâche immédiatement lorsqu'une application démarre
- 5. Exécution des objectifs Maven dans CLI
- 6. Exécution d'une application groovy sous Maven
- 7. Exécuter une seule exécution de plugin Maven?
- 8. Exécution d'inspections IntelliJ via Maven/TeamCity
- 9. Exécution incomplète des rappels sur jQuery POST
- 10. Définir l'enregistreur pour une exécution de Maven Embedder
- 11. Comment utiliser la tâche de fourmis maven de gradle?
- 12. Maven Ant Tâche: Remplacer la propriété dans pom.xml lors de l'exécution de Maven Ant
- 13. Exécution d'une tâche une seule fois à l'aide de Quartz
- 14. Exécution d'une tâche en arrière-plan d'une application iPhone
- 15. Comment protéger une tâche/cible ANT contre une exécution accidentelle?
- 16. Exécution d'une tâche par défaut dans ANT en cas d'échec
- 17. android: exécution d'une tâche en arrière-plan en utilisant AlarmManager
- 18. Exécution d'une tâche d'arrière-plan dans une application sur l'iPhone
- 19. Exécution d'une tâche après le renvoi de modelAndView
- 20. Exécution de la tâche Thor à partir de la migration
- 21. Tâche de temporisation: première exécution du planificateur au printemps 3
- 22. Exécution de la minification JS comme un objectif Maven?
- 23. maven projet avec netbeans compile entièrement à chaque exécution
- 24. Exécution du même plugin plusieurs fois dans Maven
- 25. Exécution d'une mise à jour de patch maven
- 26. Exécution Maven pour exécuter plusieurs plugins en séquence
- 27. exécution d'un script depuis maven dans un projet multi-modules
- 28. Démarrage d'un projet Maven J2Me dans Eclipse et exécution
- 29. jQuery .post ne pas exécuter la tâche dans l'URL
- 30. MSBuild Post Build tâche pour exécuter un EXE