Bonjour,
Je pars d'un projet contenant ce pom.xml (allégé) :
Le truc important c'est de voir que j'utilise le plugin antrun avec une tâche non standard (propertyregex), et que j'ai besoin de la dépendance ant-contrib pour que cela fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>compile-id</id> <phase>process-resources</phase> <configuration> <tasks> ... <propertyregex .../> ... </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> <dependencies> ... <dependency> <groupId>ant-contrib</groupId> <artifactId>ant-contrib</artifactId> <version>1.0b3</version> <scope>runtime</scope> </dependency> </dependencies> </plugin> ... </project>
Et cela fonctionne ! (joie)
Mais voilà, j'ai transformé le dit projet pour le diviser en projet multi-modules, avec les modules commons, client et server.
Le code précédent est exécuté dans le pom.xml du serveur.
Or, j'ai également besoin d'utiliser le plugin antrun dans le module client. Les tâches y sont toutefois très simples, et je n'ai pas besoin de dépendances ici :
Le souci, c'est que si je lance la commande mvn clean install sur le projet parent, j'obtiens, lors du traitement du serveur l'erreur m'indiquant que net/sf/antcontrib/antcontrib.properties n'est pas trouvé (qui est contenu dans la dépendance ant-contrib.jar).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>compile-id</id> <phase>process-resources</phase> <configuration> <tasks> <copy .../> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
Après quelques recherches, je m'aperçois que les dépendances définies dans la configuration du plugin antrun du serveur ne sont pas utilisées.
Si je déplace ces dépendances dans le projet client, alors cette fois-ci, l'erreur n'apparait plus, et le build se termine correctement !
J'ai donc l'impression que le plugin antrun est configuré une seule fois pour l'ensemble des builds et donc que la configuration
Quelle est la raison d'une telle chose ?
Est-ce le cas quelque soit le plugin utilisé ?
Ne peut-on pas définir des dépendances différentes pour un plugin donné, selon le module qui est en train d'être buildé ?
Pour résoudre mon problème plus proprement, j'ai copié la liste des dépendances pour le plugin antrun dans le pom.xml parent, puis je n'ai défini que le bloc <executions> dans chaque module...
Cela fonctionne, mais ne me plait guère...
Pour information, j'utilise Maven 2.0.5, mais le résultat est le même avec Maven 2.0.8...
Partager