使用 maven,可以通过 ossrh 将工件推送到中央;除了核心 jar 的常用 maven-deploy-plugin 之外,这还需要 GPG 签名、源代码和 javadocs。
有没有办法用builder来安排这一切?
使用 maven,可以通过 ossrh 将工件推送到中央;除了核心 jar 的常用 maven-deploy-plugin 之外,这还需要 GPG 签名、源代码和 javadocs。
有没有办法用builder来安排这一切?
我们在 Apache ODE 中执行此操作,以便工件符合 Apache 的发布策略并被 Nexus 接受。我认为 OSSRH 的工作方式类似。
ODE 中使用的 GPG 任务基于Buildr How-to 文档,但略微扩展了工作。你可以在这里找到它。要在上传之前对所有工件进行签名,只需将一个添加gpg_sign_before_upload
到您的顶级项目(参见此处的示例)。
我刚刚为我的几个项目实施了这个。这是我必须做的。
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'
希望有帮助。