Comment déployer SNAPSHOT avec sources et JavaDoc?
Je veux déployer des sources et des javadocs avec mes instantanés. Cela signifie que je veux 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 n'arrive pas à comprendre comment le connecter aux versions snapshots.
3 réponses
<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 pour un exemple complet.
Juste pour ajouter une alternative qui ne vous oblige pas à muck avec la configuration du plugin:
mvn -DperformRelease=true [goals]
Le crédit va à 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 poms et ne disparaîtra pas de sitôt:
Mvn clean javadoc:jar source:jar installer
Qui fonctionne bien avec Maven 3+, avec...
Mvn clean javadoc:jar source:jar déployer
Que J'ai testé à partir du déploiement de Jenkins sur Nexus.
Cette approche était sympa car je n'avais qu'à modifier certains Jobs Jenkins et je ne l'ai pas fait besoin de jouer avec mon pdm.