我按照http://central.sonatype.org/pages/gradle.html的说明使用Gradle将工件上传到Maven Central Repository。说明工作。示例显示在https://github.com/plume-lib/options/blob/master/build.gradle和https://github.com/plume-lib/bcel-util/blob/master/build.gradle。
我的问题是它会导致其他开发人员无法使用的构建文件。
Gradle签名插件(https://docs.gradle.org/current/userguide/signing_plugin.html)需要gradle.properties
个文件signing.keyId
,signing.password
和signing.secretKeyRingFile
,其中后者指向有效的GPG钥匙圈。如果文件不存在或无效,插件会终止构建并显示错误。
但只有在将工件上传到Maven Central时才需要签名。 我希望任何用户都能够运行gradle构建文件(除了实际上传到Maven Central),即使他们没有GPG密钥环。
我怎样才能做到这一点?
以下是我尝试过的一些事情:
将gradle文件拆分为多个部分。 (这是链接示例中显示的内容。)这需要进行两处更改。
将主构建文件更改为构建脚本。 (它仍然可以从命令行调用)。关于这一点的一个重要的事情是,只有一个gradle构建文件可以包含plugins { ... }
块,并且引用plugins { ... }
块之外的插件是冗长和丑陋的,如(例如){{3}的底部}或
创建另一个仅用于签名的构建文件,使用apply from:
包含主文件。
问题:如果没有丑陋的buildscript块,有没有办法做到这一点?
将虚拟密钥环提交到存储库,在本地gradle.properties中引用它,用户~/gradle.properties
可以为任何想要上传到Maven Central的用户覆盖它。问题是使用本地路径名会产生一个gradle警告。
问题:没有gradle警告,有没有办法做到这一点?
使用条件签名(https://plugins.gradle.org/plugin/com.github.sherter.google-java-format)。在我的实验中,这没有用。即使在没有签名工件的gradle执行中,签名插件仍然需要GPG密钥环存在。 问题:是否可以使用条件签名来避免使用GPG密钥环?
问题:有没有比上述可能性更好的方法来实现我的目标?