web-dev-qa-db-fra.com

Comment déployer SNAPSHOT avec les sources et JavaDoc?

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.

90
Henryk Konsek
<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.

76
sfussenegger

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

46
Dan

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.

39
HDave