Je pensais que j'étais un utilisateur expérimenté de Maven, mais j'ai un blocage mental sur la façon de procéder!
J'ai pu utiliser le plugin Maven sql pour supprimer, créer et installer un schéma dans une base de données via des exécutions de plugin que j'ai définies et liées au pre-integration-test
phase.
Cependant, maintenant, j'aimerais utiliser ce même plugin SQL pour insérer des exemples de données à tout moment à partir de la ligne de commande - c'est-à-dire, pas lié à un objectif de cycle de vie. Il existe différents ensembles d'exemples de données, je voudrais donc définir quelques exécutions différentes.
Mais existe-t-il un moyen d'exécuter l'une de ces exécutions à partir de la ligne de commande en utilisant peut-être l'ID d'exécution?
Comme indiqué dans Comment exécuter l'exécution du plug-in maven directement à partir de la ligne de commande? , cette fonctionnalité a été implémentée comme MNG-5768 , et est disponible dans Maven 3.3.1.
Le changement:
étendre la syntaxe d'appel direct du plugin pour autoriser le paramètre facultatif @ execution-id, par exemple, org.Apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @ executionId.
Donc, tant que vous donnez à votre exécution un identifiant:
mvn sql:execute@specific-execution-id
utilise l'exécution configurée dans votre pom.
Mais existe-t-il un moyen d'exécuter l'une de ces exécutions à partir de la ligne de commande en utilisant peut-être l'ID d'exécution?
Non, pas possible . Ce qui est possible cependant est de définir "a" la configuration à utiliser lorsque le plugin est appelé depuis la ligne de commande en utilisant le "spécial" default-cli
id d'exécution:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.4</version>
...
<executions>
<execution>
<id>default-cli</id>
<configuration>
...
</configuration>
</execution>
...
</executions>
</plugin>
Et appelez simplement mvn sql:execute
.
Voir ci-dessous pour les détails (à partir des Maven 2.2.0 Release Notes ):
- MNG-3401 - À partir de Maven 2.2.0, les objectifs invoqués directement à partir de la ligne de commande peuvent être configurés dans le POM séparément des autres invocations de plug-in à l'aide d'un
executionId
spécial appelédefault-cli
. Là où auparavant, toutes les configurations pour les objectifs de ligne de commande devaient aller dans la configuration au niveau du plugin, Maven 2.2.0 permet de séparer les configurations spécifiques à la ligne de commande dans leurs propres<execution>
. Pour plus d'informations, consultez le Guide des ID d'exécution par défaut .