Appyling Gradle签名插件,无需GPG密钥环

Appyling Gradle签名插件,无需GPG密钥环,gradle,sign,gradle-plugin,maven-central,Gradle,Sign,Gradle Plugin,Maven Central,我正在按照上的说明使用Gradle将工件上传到Maven中央存储库。说明起作用了。示例见和 我的问题是,它会产生一个其他开发人员无法使用的构建文件 Gradle签名插件()需要一个Gradle.properties文件,其中包含signing.keyId、signing.password和signing.secretKeyRingFile,后者指向有效的GPG密钥环。如果文件不存在或无效,插件将以错误终止构建 但只有在将工件上传到Maven Central时才需要签名。 我希望任何用户都能够运行

我正在按照上的说明使用Gradle将工件上传到Maven中央存储库。说明起作用了。示例见和

我的问题是,它会产生一个其他开发人员无法使用的构建文件

Gradle签名插件()需要一个
Gradle.properties
文件,其中包含
signing.keyId
signing.password
signing.secretKeyRingFile
,后者指向有效的GPG密钥环。如果文件不存在或无效,插件将以错误终止构建

但只有在将工件上传到Maven Central时才需要签名。 我希望任何用户都能够运行gradle构建文件(除了实际上传到Maven Central),即使他们没有GPG密钥环

我怎样才能做到这一点

以下是我尝试过的一些事情:

  • 将gradle文件拆分为多个部分。(这是链接示例中显示的内容。)这需要两个更改

    • 将主构建文件更改为构建脚本。(仍然可以从命令行调用它)。关于这一点,有一点很重要,那就是只有gradle构建文件才能包含
      plugins{…}
      块,并且在
      plugins{…}
      块之外引用插件是冗长而难看的,比如在(比如)或

    • 创建另一个仅用于签名的构建文件,该文件使用
      apply from:
      包含主构建文件

    问题:有没有一种方法可以在没有丑陋的buildscript块的情况下实现这一点

  • 将虚拟密钥环提交到存储库,在本地gradle.properties中引用它,用户的
    ~/gradle.properties
    可以覆盖任何想要上载到Maven Central的用户的虚拟密钥环。问题是使用本地路径名会产生渐变警告。 问:有没有一种方法可以在没有gradle警告的情况下做到这一点

  • 使用条件签名()。在我的实验中,这没有帮助。即使在工件没有签名的gradle执行中,签名插件仍然需要存在GPG密钥环。 问题:可以使用条件签名来避免需要GPG密钥环吗


  • 问题:有没有比上述可能性更好的方法来实现我的目标?

    文档中有一个部分,您在这里需要的正是这个部分。
    您甚至可以进行条件检查,以确保所需的属性确实可用于构建。

    我问题中的第3点指出,条件签名不起作用,至少与手册中描述的不一样。这真的很奇怪,我编写了Ehcache 3构建,并且它按文档所述工作,构建中或我的本地~/.gradle/gradle.properties中都没有所需属性的定义-请参阅