使用maven-release-plugin将其他jar部署到repo

时间:2012-05-30 23:19:08

标签: maven clojure maven-release-plugin

我正在使用zimaven-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文件?

我还有其他选择吗?

3 个答案:

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