Bonjour,
[maven 2.0.9]
Globalement, je compile mes artifacts (Tout un tas de modules avec des dépendances entre eux) de deux manières différentes, à l'aide d'un profile.
L'activation du profile se fait via l'invite de commande.
Donc il y a toto qui compile avec profile, et titi qui compile sans profile.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mvn -P monProfileQueJaime compile
Problème, lors du déploiement, toto écrase les artifacts de titi (et inversement). Bilan toto risque d'utiliser les artifacts de titi comme dépendance (et inversement).
Alors je me dis, on va distribuer les artifacts de titi dans un répertoire de repository (Celui par défaut, titi n'a pas de profile) et les artifacts de toto dans un autre, avec la balise distributionManagement dans le profile. Mais c'est le drame, le gestionnaire du repository n'a pas envie de faire le(s) répertoire(s) supplémentaire(s). Probable problème de conflit, et je veux bien le croire (Des sombre histoire de cache qui cumulerait tout ce qu'il y a dans un repo...)
Donc je me dis alors que les classifiers peuvent me sauver. Ainsi toto aura des artifact avec un classifier, et titi pas de classifier. J'ajoute donc un classifier dans mon profile :
Hé bin non. Si j'active le profile, il me produit 2 jars : un avec le classifier, un sans, et il me déploie les deux.
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 <build> <plugins> <plugin> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>ci</classifier> </configuration> </execution> </executions> </plugin> </plugins> </build>
J'ai essayé des trucs plus tordu, style dans mon profile :
Mais visiblement c'est tout à fait ignoré...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <properties> <project.classifier>ci</project.classifier> </properties>
D'où ma question, pourquoi me produit-il deux jars ??
Merci d'avance.
[edit]Ah ! La deuxième méthode d'ajout de classifier de mon lien plus haut semble mieux marcher. (<classifier>${envClassifier}</classifier>
)
Partager