2 votes

mvn dependency:copy-dependencies supprime les versions

J'utilise "mvn dependency:copy-dependencies" pour obtenir toutes les sources des dépendances que mon projet utilise. Je l'utilise en ligne de commande, donc ça ressemble à ça :

mvn dependency:copy-dependencies -Dclassifier=sources -DincludeScope=compile

Cela fonctionne bien à l'exception d'un petit problème : pour une raison quelconque, la version est supprimée par ce plugin. Ainsi, au lieu de commons-logging-1.1.1-sources.jar, j'obtiens commons-logging-sources.jar.

La documentation indique que l'argument "stripVersion" devrait affecter ce comportement, mais la valeur par défaut est false. De plus, j'ai essayé de le définir explicitement et cela n'a pas aidé.

J'utilise apache-maven-2.2.1 et jdk1.6.0_21.

Merci, Tarlog.

4voto

Sean Patrick Floyd Points 109428

C'est très étrange, vous pouvez voir dans la source ( Mojo , La joie des parents , DependencyUtil ) que stripVersion fait ce qu'il dit qu'il fait.

Plusieurs possibilités :

a) Utilisez-vous la version actuelle du plugin de dépendances ?

Soit vous configurez votre pom

 <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.1</version>
      </plugin>
    </plugins>
  </build>

ou utiliser le nom de but entièrement qualifié :

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:copy-dependencies

b) stripVersion est le nom du paramètre dans la configuration XML. La version en ligne de commande est

-Dmdep.stripVersion=false

Essayez d'utiliser ça.

2voto

Tarlog Points 5447

J'ai trouvé la cause profonde d'un problème. Quelque part dans le parent du parent du parent du parent de ... mon pom, stripVersion a été mis à true. Je ne le savais pas et de toute façon je pensais que le réglage de la propriété système devait remplacer le xml. J'ai même essayé de mettre cette propriété dans mon pom et cela n'a toujours pas aidé. D'une manière ou d'une autre, le pom parent est resté le dominant, donc j'ai pensé que la propriété ne fonctionnait pas.

Lorsque j'ai exécuté avec -X param j'ai vu qu'il ne changeait pas malgré ma configuration, alors j'ai commencé à creuser dans les poms parents jusqu'à ce que je trouve le problème.

Merci à tous !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X