Je veux exécuter une simple commande exec post maven installer phase. Quelle est la façon la plus simple possible pour y parvenir? (sans l'ajout de nouveaux plugins)
Si vous souhaitez exécuter cette commande dans le cadre de la normale construire du cycle de vie, il n'y a pas d'autre moyen que la liaison de la exec objectif sur le install phase:
J'ai fait un simple test à l'aide de la configuration ci-dessus (à l'aide de ls "COMMANDE") avec un fraîchement créé maven du projet et en cours d'exécution mvn install produit la sortie suivante:
$ mvn install
[INFO] recherche de projets...
[INFO] ------------------------------------------------------------------------
[INFO] la Construction maven-exec-cas de test
[INFO] la tâche de segment: [installer]
[INFO] ------------------------------------------------------------------------
...
[INFO] [installer:installez {exécution: par défaut-installer}]
[INFO] Installation /home/pascal/Projects/maven-exec-testcase/target/maven-exec-testcase-1.0-SNAPSHOT.jar d' /home/pascal/.m2/repository/com/mycompany/app/maven-exec-testcase/1.0-SNAPSHOT/maven-exec-testcase-1.0-SNAPSHOT.jar
[INFO] [exec exec {exécution: mon-exec}]
[INFO] pom.xml
[INFO] src
[INFO] la cible
[INFO] ------------------------------------------------------------------------
[INFO] CONSTRUCTION RÉUSSIE
[INFO] ------------------------------------------------------------------------
[INFO] durée Totale: 12 secondes
[INFO] Terminé: Mar Jan 05 19:26:04 CET 2010
[INFOS] Final de la Mémoire: 11M/75M
[INFO] ------------------------------------------------------------------------
Comme nous pouvons le voir, la commande est exécutée à la fin de la install phase (d'après la copie de l'objet dans le référentiel local).
Et si vraiment vous ne voulez pas ajouter de l'extrait de code dans votre pom, alors vous aurez à appeler explicitement exec:exec après install sur la ligne de commande comme suggéré par whaley.
Le maven par défaut du cycle de vie se termine par la installer et déployer objectifs - il n'y a pas de pré - et post - version de ces objectifs.
Options possibles serait de:
Lier l'exec exec mojo avec la phase de déploiement. Je voudrais vous mettre en garde contre l'idée que la phase de déploiement est vraiment le but de déployer des artefacts à distance à un référentiel.
Exécuter la commande exec exec mojo après l'installation de but dans votre mvn invocation... par exemple:
Si vous avez un multi-projet de module, créez un autre module à la fin de votre <modules> bind exec exec à l'un des objectifs habituels au sein de ce module. Ce sera la force de ce module particulier pour exécuter dernier en supposant que les autres les critères du réacteur regarde n'est pas remplie. Une stratégie commune-je employer avec des projets maven je travail sur l'est "dans le doute, créer un autre module".
Si vous souhaitez exécuter cette commande dans le cadre de la normale construire du cycle de vie, il n'y a pas d'autre moyen que la liaison de la
exec
objectif sur leinstall
phase:J'ai fait un simple test à l'aide de la configuration ci-dessus (à l'aide de
ls
"COMMANDE") avec un fraîchement créé maven du projet et en cours d'exécutionmvn install
produit la sortie suivante:Comme nous pouvons le voir, la commande est exécutée à la fin de la
install
phase (d'après la copie de l'objet dans le référentiel local).Et si vraiment vous ne voulez pas ajouter de l'extrait de code dans votre pom, alors vous aurez à appeler explicitement
exec:exec
aprèsinstall
sur la ligne de commande comme suggéré par whaley.OriginalL'auteur Pascal Thivent
Le maven par défaut du cycle de vie se termine par la installer et déployer objectifs - il n'y a pas de pré - et post - version de ces objectifs.
Options possibles serait de:
Lier l'exec exec mojo avec la phase de déploiement. Je voudrais vous mettre en garde contre l'idée que la phase de déploiement est vraiment le but de déployer des artefacts à distance à un référentiel.
Exécuter la commande exec exec mojo après l'installation de but dans votre mvn invocation... par exemple:
mvn clean install exec exec -Dexec.executable="yourcommand" -Dexec.args="arguments"
Si vous avez un multi-projet de module, créez un autre module à la fin de votre <modules> bind exec exec à l'un des objectifs habituels au sein de ce module. Ce sera la force de ce module particulier pour exécuter dernier en supposant que les autres les critères du réacteur regarde n'est pas remplie. Une stratégie commune-je employer avec des projets maven je travail sur l'est "dans le doute, créer un autre module".
OriginalL'auteur