J'utilise maven pour construire un projet multi module. Mon module 2 dépend du module 1 src à la portée de compilation et des tests du module 1 dans la portée de test.
Module 2 -
<dependency>
<groupId>blah</groupId>
<artifactId>MODULE1</artifactId>
<version>blah</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
Cela fonctionne très bien. Disons que mon module 3 dépend de Module1 src et des tests au moment de la compilation.
Module 3 -
<dependency>
<groupId>blah</groupId>
<artifactId>MODULE1</artifactId>
<version>blah</version>
<classifier>tests</classifier>
<scope>compile</scope>
</dependency>
Quand je cours mvn clean install
, ma construction s'exécute jusqu'au module 3, échoue au module 3 car il n'a pas pu résoudre la dépendance de test du module 1. Ensuite, je fais un mvn install
sur le module 3 seul, je reviens en arrière et mvn install
je cours sur mon pom parent pour le faire construire. Comment puis-je réparer cela?
maven-2
maven-plugin
utilisateur209947
la source
la source
Réponses:
J'ai un doute sur ce que vous essayez de faire mais je suppose que vous voulez réutiliser les tests que vous avez créés pour un projet (module1) dans un autre. Comme expliqué dans la note au bas du Guide d'utilisation des tests joints :
Donc, tout d'abord, pour empaqueter les tests compilés dans un JAR et les déployer pour une réutilisation générale, configurez le
maven-jar-plugin
comme suit:<project> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.2</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
Ensuite, installez / déployez l'artefact JAR de test comme d'habitude (à l'aide de
mvn install
oumvn deploy
).Enfin, pour utiliser le JAR de test, vous devez spécifier une dépendance avec un type spécifié de
test-jar
:<project> ... <dependencies> <dependency> <groupId>com.myco.app</groupId> <artifactId>foo</artifactId> <version>1.0-SNAPSHOT</version> <type>test-jar</type> <scope>test</scope> </dependency> </dependencies> ... </project>
la source
En ce qui concerne mon commentaire à la question de Pascals, je pense avoir trouvé une réponse appropriée:
<plugins> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>2.2</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> <phase>test-compile</phase> </execution> </executions> <configuration> <outputDirectory>${basedir}\target</outputDirectory> </configuration> </plugin> </plugins>
La principale différence ici, comme vous le voyez ici, est la
<phase>
balise.Je vais créer le test-jar et il sera disponible dans la phase de compilation des tests et pas seulement après la phase de package.
Travaille pour moi.
la source
Comme le dit https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html :
Veuillez lire cet article pour plus de détails.
la source