在 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
目前我正在使用 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