0
我有兩個任務nativeJar和native64Jar,清單和doLast閉包對於除文件名外的任務都相同。因此,可以使用通用方法提取該代碼,並將兩個文件名作爲方法參數傳遞,並從兩個任務中調用該通用方法,或從dolast clouser調用該方法。如何從gradle jar任務提取公共代碼到方法
task nativeJar(type: Jar) {
doFirst {
delete fileTree(dir: "$releaseDir", include: "*.jar")
}
baseName = 'NativeLibs'
destinationDir = new File(releaseDir)
from files(releaseDir + 'jar_merge/signedNativeLibs')
manifest {
attributes 'Permissions' : 'all-permissions', 'Publisher' : 'abc', 'Application-Name' : 'WorkBench', 'Codebase' : '*.abc.com'
}
doLast {
ant.signjar(jar: "$releaseDir/NativeLibs.jar", alias:"WorkBench", keystore: "WorkBench.jks", signedjar: "$releaseDir/signedNativeLibs.jar", storepass: "freddie")
}
}
// Create signedNativeLibs64.jar file
task native64Jar(type: Jar , dependsOn: 'nativeJar') {
baseName = 'NativeLibs64'
destinationDir = new File(releaseDir)
from files(releaseDir + 'jar_merge/signedNativeLibs64')
manifest {
attributes 'Permissions' : 'all-permissions', 'Publisher' : 'abc', 'Application-Name' : 'WorkBench', 'Codebase' : '*.abc.com'
}
doLast {
ant.signjar(jar: "$releaseDir/NativeLibs64.jar", alias:"WorkBench", keystore: "WorkBench.jks", signedjar: "$releaseDir/signedNativeLibs64.jar", storepass: "freddie")
}
}
有關此異常的任何想法,提到一個例外雖然行296是類SignJarTask擴展DefaultTask { *出了什麼問題: 無法編譯構建網絡le'C:\ workspace \ workbench \ build.gradle'。 >啓動失敗: 構建文件'C:\ workspace \ workbench \ build.gradle':296:此處不需要類定義。請在適當的地方定義課程 或者嘗試使用block/Closure。在行:296柱:5.文件:build_3ps3f1f00ilt6reek6t9f0j4go @線296,第5列 類SignJarTask延伸DefaultTask { ^ 1錯誤 – 2014-11-21 18:57:43
可能丟失的{},(),或。由於我沒有一個完整的例子,我只是輸入了大部分盲人。 – bigguy 2014-11-21 20:06:15
我不這麼認爲,因爲我刪除了您的自定義任務,並使用了gradle示例中的以下任務,並且得到了相同的異常,因此我將任務置於gradle腳本的頂部,並且在使用相同的小改動邏輯任務招呼(類型:GreetingTask) 類GreetingTask擴展DefaultTask { @TaskAction 高清迎接(){ 的println '你好從GreetingTask' }} 大 – 2014-11-21 20:10:10