将ant signJar任务转换为gradle

将ant signJar任务转换为gradle,gradle,build,ant,sign,Gradle,Build,Ant,Sign,我正在将ant构建脚本转换为gradle。作为ant步骤的一部分,将对正在创建的.jar文件进行签名。蚂蚁符号目标看起来像: <signjar alias="${keystore.alias}" keystore="${keystore.file}" storepass="${keystore.password}" > <path> <fileset dir="${build.jars.dir}" includes="xxx-

我正在将ant构建脚本转换为gradle。作为ant步骤的一部分,将对正在创建的.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>

在我的渐变身材中,我有

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
}
应用插件“签名”
...
任务signJar(类型:signJar,dependsOn:reobfJar){
keyStore='certs/keyStore.jks'
别名='somealias'
storePass='somepassword'
keyPass='somepassword'

inputFile='build/libs/xxx-1.0-SNAP.jar'我想出了如何做到这一点。这是我能够放在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
task-signJar