在 gradle 中生成密钥

Generate keys in gradle

目前我正在使用 ant XML 来生成密钥和签署 jar。

我想在将来通过将所有内容转换为 Gradle 任务而不使用 ant.importBuild 并且不必使用 keytool -genkey 手动创建密钥来消除 XML。我相信我已经弄清楚了签名部分,但在 gradle.

中需要有关密钥生成的帮助

在 ant XML 中,它目前看起来像这样:

<genkey alias="${key.alias}" keystore="${keystore.location}" storepass="${keystore.password}" dname="CN=name, OU=IT, O=org, C=US"/>

gradle 中是否有生成密钥的等效任务?除非我遗漏了什么 Gradle 似乎总是假设密钥已经生成。

我已经阅读了这些 ant and signing plugin 页,但也许我看不到森林,因为我迷失在树丛中。

谢谢。

Gradle 将 Ant 视为 'First Class Citizen'.

您可以在 Gradle 中调用任何常见的 Ant 任务,只需在任务名称前加上 ant 前缀即可。属性的设置类似于方法调用的参数。有关详细信息,请参阅此 link:https://docs.gradle.org/current/userguide/ant.html

因此,对于您的情况,它看起来像:

ant.genkey(alias:$keyAlias, keystore:$keystoreLocation, storepass:$storePass, dname:'$dName) 

这是对你的次要问题的回答。举个具体的例子更容易。

build.xml:

<project name="TestProject" default="test" basedir=".">
  <property name="key.alias" value="keyaliasvalue"/>

  <target name="testtarget">
      <echo>Test Target</echo>
  </target>
</project>

build.gradle:

ant.importBuild 'build.xml'

task test << {
    println("Value of ants key.alias property: " + ant.properties['key.alias'])
}

运行 的结果:gradle 测试

D:\Data\test>gradle test
:test
Value of ants key.alias property: keyaliasvalue

BUILD SUCCESSFUL

Total time: 2.787 secs

备注:

1) 对于我的测试用例,我将蚂蚁 build.xml 和 build.gradle 放在同一目录中。

2) 注意我使用的格式:

ant.properties['key.alias']. 

如果 属性 名称中没有句点 (.) 会更容易。因为 Gradle 脚本实际上是一个 Groovy 文件,所以 (.) 导致 Groovy 认为您正在尝试访问对象上的嵌套 属性。如果名称中没有 (.),例如 'keyalias',您可以将语法简化为:

ant.keyalias