2

我正在使用zimaven-release-plugin生成我试图提交给 maven 中央仓库的 jar 文件。包含在中央存储库中的要求之一是工件具有包含生成的 javadocs 的 -javadoc.jar 文件。如果这不可能,他们要求您有一个空的 -javadoc.jar 文件才能通过自动化测试。

我正在使用exec-maven-plugin生成空 jar 文件,并将其放置在正确的位置,但它被 maven-release-plugin 忽略了。结果,它没有被我的 GPG 密钥签名,也没有被部署到 repo。

是否可以使用 javadoc 插件生成一个空的 javadoc jar 文件?

如果 javadoc 插件不会生成空的 jar 文件,我如何让 maven-release-plugin 识别、签名和部署由我的 shell 脚本生成的 jar 文件?

还有其他一些我忽略的选择吗?

4

3 回答 3

2

您应该尝试通过build-helper-maven-plugin添加 jar 源,它可用于将工件附加到循环。

于 2012-05-31T01:16:18.553 回答
1

您是使用 clojure 编写 maven 插件还是创建用 Clojure 编写的项目?

clojure-maven 是一个使用 clojure 编写 maven 插件的工具:

Maven 组件允许在编写 Maven 插件时使用 clojure。

如果您在 Clojure 中创建项目,那么专为创建与 Central 兼容的 clojure 项目而设计的zi 插件可能就是您所追求的。它由同一作者(雨果邓肯)撰写。

于 2012-05-31T01:11:38.170 回答
1

所以我想通了。您需要在编译阶段使用 exec-maven-plugin 插件创建目标/apidocs,而不是直接通过 shell 脚本创建空 jar 文件。

<plugin>
  <artifactId>exec-maven-plugin</artifactId>
  <groupId>org.codehaus.mojo</groupId>
  <executions>
    <execution>
      <id>Generate Empty Javadoc</id>
      <phase>compile</phase>
      <goals>
        <goal>exec</goal>
      </goals>
      <configuration>
        <executable>${basedir}/scripts/emtpy-apidocs.sh</executable>
        <arguments>
          <argument>${project.build.directory}/apidocs</argument>
        </arguments>
      </configuration>
    </execution>
  </executions>
</plugin>

然后在打包阶段使用 javadoc 插件创建 jar。生成的 jar 现在将由发布插件获取。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-javadoc-plugin</artifactId>
  <version>2.8.1</version>
  <executions>
    <execution>
      <id>attach-javadocs</id>
      <goals>
        <goal>jar</goal>
      </goals>
    </execution>
  </executions>
</plugin>
于 2012-05-31T03:52:51.193 回答