将蚂蚁招牌任务转换为Gradle



我正在将蚂蚁构建脚本转换为gradle。作为蚂蚁步骤的一部分,签署了.jar文件的签名。蚂蚁标志目标看起来像:

<signjar alias="${keystore.alias}" keystore="${keystore.file}" storepass="${keystore.password}" >
        <path>
            <fileset dir="${build.jars.dir}" includes="xxx-1.0-SNAP.jar"/>
        </path>
</signjar>

在我的gradle构建中,我有

apply plugin 'signing'
...
task signJar(type: SignJar, dependsOn: reobfJar) {
    keyStore = 'certs/keystore.jks'
    alias = 'somealias'
    storePass = 'somepassword'
    keyPass = 'somepassword'
    inputFile = 'build/libs/xxx-1.0-SNAP.jar'            <<< these lines
    outputFile = 'build/libs/xxx-1.0-SNAP_signed.jar'    <<< give error
}

build.ependerson signjar

输入文件和输出文件线的错误消息是"无法将字符串分配给class&lt; InputFile>"。我不知道如何正确完成此任务。(您可能已经猜到我不是Gradle专家(。如何使我要为Inputfile建造的罐子和要输出文件的新罐子名称?

我想出了如何做到这一点。这是我能够将其放在build.gradle文件中的任务。它不需要任何新插件(我当前正在使用" Java"插件,但我不知道此任务是否取决于此。(

尽管这显示了我的构建环境的特定设置和路径,但我认为它很容易修改您的需求。

task signJar <<{
        def signdir  = new File("$buildDir/jars/signed")
        signdir.mkdirs()
        ant.signjar(
                destDir: "${signdir.absolutePath}",
                jar: 'build/libs/*.jar',
                alias:'somealias',
                storetype:"jks",
                keystore:"certs/keystore.jks",
                storepass:'somepassword',
                verbose:true,
                preservelastmodified:"true"
        )
}
build.dependsOn signJar

最新更新