我正在使用zi和maven-release-plugin来生成jar文件,我试图将其提交到maven中央存储库。包含在中央仓库中的要求之一是工件具有包含生成的javadoc的-javadoc.jar文件。如果那是不可能的,他们require你有一个空的-javadoc.jar文件,以便通过自动化测试。
我正在使用exec-maven-plugin生成空的jar文件,我将它放在正确的位置,但它被maven-release-plugin忽略了。因此,它没有被我的GPG密钥签名,也没有被部署到回购。
是否可以使用javadoc插件生成空的javadoc jar文件?
如果javadoc插件不会生成空的jar文件,我如何让maven-release-plugin识别,签名和部署由我的shell脚本生成的jar文件?
我还有其他选择吗?
答案 0 :(得分:2)
你应该尝试通过build-helper-maven-plugin添加jar-source,它可以用来附加工件到周期。
答案 1 :(得分:1)
您使用clojure编写maven插件或创建用Clojure编写的项目吗?
clojure-maven是一个使用clojure编写maven插件的工具:
Maven components to allow the use of clojure when writing maven plugins.
如果您在Clojure中创建项目,那么专为创建与中心兼容的clojure项目而设计的zi plugin可能就是您所追求的。它由同一作者(Hugo Duncan)撰写。
答案 2 :(得分:1)
所以我明白了。不是直接通过shell脚本创建空jar文件,而是需要使用exec-maven-plugin插件创建target / apidocs作为编译阶段的一部分。
<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>