【问题标题】:Generate keys in gradle在 gradle 中生成密钥
【发布时间】:2016-02-12 16:41:58
【问题描述】:

目前我正在使用 ant XML 来生成密钥和签名 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 似乎总是假设密钥已经生成。

我已经阅读了这些 antsigning plugin 页面,但也许我看不到森林,因为我迷失在树上。

谢谢。

【问题讨论】:

    标签: java gradle ant keystore key-generator


    【解决方案1】:

    Gradle 将 Ant 视为“一等公民”。

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

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

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

    【讨论】:

    • 哇,这太简单了。谢谢!跟进问题。如果我最终将 xml 保留一段时间,在 ant.importBuild 之后,如果 antbuild.xml 具有 ,我如何引用例如 key.alias 属性?那时我可以简单地做 ant.key.alias 吗?
    【解决方案2】:

    这是您的第二个问题的答案。举个具体的例子更容易。

    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 test

    D:\Data\test>gradle test
    :test
    Value of ants key.alias property: keyaliasvalue
    
    BUILD SUCCESSFUL
    
    Total time: 2.787 secs
    

    注意事项:

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

    2) 注意我使用的格式:

    ant.properties['key.alias']. 
    

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

    ant.keyalias
    

    【讨论】:

    • 再次感谢您!这很有帮助。我可能会删除 .从我的蚂蚁属性..然后你使用的格式更清楚发生了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 2015-04-01
    • 2013-02-26
    • 1970-01-01
    相关资源
    最近更新 更多