Java 在gradle中生成关键点

Java 在gradle中生成关键点,java,gradle,ant,keystore,key-generator,Java,Gradle,Ant,Keystore,Key Generator,目前,我正在使用AntXML生成密钥并对JAR进行签名 我希望将来通过将所有内容转换为Gradle任务来消除XML,而不必使用ant.importBuild,也不必使用keytool-genkey手动创建键。我相信我已经找到了签名的部分,但在gradle的密钥生成方面需要帮助 在ant XML中,它当前看起来如下所示: <genkey alias="${key.alias}" keystore="${keystore.location}" storepass="${keystore.pas

目前,我正在使用AntXML生成密钥并对JAR进行签名

我希望将来通过将所有内容转换为Gradle任务来消除XML,而不必使用ant.importBuild,也不必使用keytool-genkey手动创建键。我相信我已经找到了签名的部分,但在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,就可以调用Gradle中的任何常见Ant任务。属性的设置类似于方法调用的参数。有关更多信息,请参阅此链接:

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

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>
注:

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

2) 请注意,我使用以下格式:

ant.properties['key.alias']. 
如果属性名称中没有句点(.),则会更容易。因为Gradle脚本实际上是Groovy文件,(.)使Groovy认为您正在尝试访问对象上的嵌套属性。如果名称中没有(.),如“keyalias”,则可以将语法简化为:

ant.keyalias

哇,这太简单了。非常感谢。跟进问题。如果在ant.importBuild之后,我将xml保留一段时间,那么如果antbuild.xml已经存在,我如何引用例如key.alias属性?我可以简单地使用ant.key.alias吗?再次感谢!这很有帮助。我很可能会把它取下来。从我的蚂蚁财产。。然后,您使用的格式会更清楚地显示发生了什么。
ant.properties['key.alias']. 
ant.keyalias