Je souhaite déployer des sources et des javadocs avec mes instantanés. Cela signifie que je souhaite automatiser la commande suivante:
mvn clean source:jar javadoc:jar deploy
Juste pour exécuter:
mvn clean deploy
Je ne veux pas que la génération javadoc/sources soit exécutée pendant la phase install
(c'est-à-dire les builds locaux).
Je sais que les plugins source/javadoc peuvent être synchronisés avec l'exécution du plugin release
mais je ne sais pas comment le câbler aux versions des snapshots.
<build>
<plugins>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>deploy</phase>
<goals><goal>jar-no-fork</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>deploy</phase>
<goals><goal>jar</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- explicitly define maven-deploy-plugin after other to force exec order -->
<artifactId>maven-deploy-plugin</artifactId>
<executions>
<execution>
<id>deploy</id>
<phase>deploy</phase>
<goals><goal>deploy</goal></goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Voir POM parent OSS de Sonatype pour un exemple complet.
Juste pour ajouter une alternative qui ne vous oblige pas à bouger avec la configuration du plugin:
mvn -DperformRelease=true [goals]
Nous remercions mcbeelen de http://sea36.blogspot.com/2009/02/attaching-javadocs-and-sources-to-maven.html?showComment=1314177874102#c6853460758692768998
L'article mentionné par Dan mentionne également une autre approche qui fonctionne sans modifier les pompons ET ne disparaîtra pas de sitôt:
mvn clean javadoc: source du pot: pot installer
Ce qui fonctionne bien avec Maven 3+, avec ...
mvn clean javadoc: source jar: jar déployer
Ce que j'ai testé à partir du déploiement de Jenkins sur Nexus.
Cette approche était agréable car je n'avais qu'à modifier certains travaux Jenkins et je n'avais pas besoin de jouer avec mes pompons.