如何使用源和JavaDoc部署SNAPSHOT?

时间:2011-01-18 15:08:34

标签: java maven-2 maven-release-plugin

我想用快照部署源代码和javadoc。这意味着我想自动化以下命令:

mvn clean source:jar javadoc:jar deploy

执行:

mvn clean deploy

我不希望在install阶段(即本地版本)执行javadoc / sources生成。

我知道source / javadoc插件可以与release插件的执行同步,但我无法弄清楚如何将它连接到快照发布。

3 个答案:

答案 0 :(得分:77)

<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>

有关完整示例,请参阅Sonatype's OSS parent POM

答案 1 :(得分:46)

只是添加一个不需要你使用插件配置的替代方案:

mvn -DperformRelease=true [goals]

来自http://sea36.blogspot.com/2009/02/attaching-javadocs-and-sources-to-maven.html?showComment=1314177874102#c6853460758692768998

的mcbeelen

答案 2 :(得分:34)

Dan提到的文章还提到了另一种方法,它可以在不修改poms的情况下工作,并且不会很快消失:

  

mvn clean javadoc:jar source:jar install

与Maven 3+配合使用,以及......

  

mvn clean javadoc:jar source:jar deploy

我从Jenkins部署到Nexus进行了测试。

这种做法很好,因为我只需要修改一些Jenkins的工作,而不需要弄乱我的poms。