如何使用源代码和 JavaDoc 部署 SNAPSHOT?

2022-08-31 10:18:16

我想使用我的快照部署源和 javadocs。这意味着我想自动执行以下命令:

mvn clean source:jar javadoc:jar deploy

只需执行:

mvn clean deploy

我不想在阶段(即本地构建)执行javadoc /sources生成。install

我知道source / javadoc插件可以与插件的执行同步,但我不知道如何将其连接到快照版本。release


答案 1
<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 的 OSS 父 POM


答案 2

Dan引用的文章还提到了另一种方法,这种方法无需修改poms即可工作,并且不会很快消失:

mvn clean javadoc:jar source:jar install

这与Maven 3 +一起工作得很好,还有...

mvn clean javadoc:jar source:jar deploy

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

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


推荐