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.

78
demandé sur Henryk Konsek 2011-01-18 18:08:33

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.

71
répondu sfussenegger 2012-11-14 18:40:50

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

44
répondu Dan 2012-01-26 15:34:13

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.

23
répondu HDave 2016-07-05 22:40:36