1

使用 maven,可以通过 ossrh 将工件推送到中央;除了核心 jar 的常用 maven-deploy-plugin 之外,这还需要 GPG 签名、源代码和 javadocs。

有没有办法用builder来安排这一切?

4

2 回答 2

2

我们在 Apache ODE 中执行此操作,以便工件符合 Apache 的发布策略并被 Nexus 接受。我认为 OSSRH 的工作方式类似。

ODE 中使用的 GPG 任务基于Buildr How-to 文档,但略微扩展了工作。你可以在这里找到它。要在上传之前对所有工件进行签名,只需将一个添加gpg_sign_before_upload到您的顶级项目(参见此处的示例)。

于 2012-10-25T12:02:13.973 回答
1

我刚刚为我的几个项目实施了这个。这是我必须做的。

Buildr 包含一个内置的 gpg 插件,但是当工件没有 pom 时它似乎有一个错误,所以我不得不放入一个补丁来修复这个问题。然后我创建了一个自定义插件,它允许我生成一个 pom 作为构建过程的一部分,这里提供。然后我只需将一些元数据添加到主构建文件中,如此处所示。所以忽略错误修复补丁和自定义插件。下面演示了添加到构建文件所需的代码

pom.add_apache2_license
pom.add_github_project('realityforge/gelf4j')
pom.add_developer('realityforge', 'Peter Donald', 'peter@realityforge.org', ['Developer'])
pom.optional_dependencies.concat [:getopt4j, :slf4j_api, :log4j, :logback_core, :logback_classic]

...

package(:jar)
package(:sources)
package(:javadoc)

然后,我倾向于将发布位置的配置直接添加到构建文件中,或者更有可能添加到与构建文件位于同一目录中的 _buildr.rb 文件中,其中包含类似于以下代码

repositories.release_to[:url] = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
repositories.release_to[:username] = 'username'
repositories.release_to[:password] = 'password'

希望有帮助。

于 2013-12-28T10:45:09.490 回答