Dys*_*zzZ 3 android build gradle
我的构建 jar 任务在 3.5.3 年级中工作正常,但在 3.6.1 年级中不起作用。我检查了我的构建文件,但是,/build/intermediates/packaged-classes/目录奇怪地丢失了。
gradle 脚本:
task buildJar(dependsOn: ['build'], type: Jar) {
doFirst {
manifest {
attributes 'Jar-VersionName': jarVersionName
attributes 'Jar-VersionCode': jarVersionCode
}
}
from zipTree(file('build/intermediates/packaged-classes/release/classes.jar'))
appendix = ""
baseName = "pp"
version = jarVersionName + "_" + jarVersionCode
classifier = "release"
extension = "jar"
destinationDir = file('build/libs/')
}
//dx --dex --output=target.jar origin.jar
task buildDex(dependsOn: ['buildJar'], type: Exec) {
workingDir buildDir.absolutePath + "/libs"
executable "dx"
args "--dex"
args "--output=" + buildJar.archiveName
args buildJar.archiveName
}
Run Code Online (Sandbox Code Playgroud)
错误日志:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':p2p:buildJar'.
> Cannot expand ZIP '/Users/william/AndroidStudioProjects/Work/lib_plugin/project/build/intermediates/packaged-classes/release/classes.jar' as it does not exist.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
Run Code Online (Sandbox Code Playgroud)
我环顾四周,显然我可以在这些解决方案之间进行选择,但它们对我来说太旧了。
那么,生成的jar的新路径在哪里呢?
我找到了!当我将gradle版本升级到4.0时,我找到了class.jarinbuild/intermediates/aar_main_jar/release/classes.jar路径。
因此,完整的构建任务代码如下:
def jarPath = buildDir.absolutePath + "/libs"
def jarBaseName = "plugin"
task buildJar(dependsOn: ['build'], type: Jar) {
doFirst {
manifest {
attributes 'Jar-VersionCode': jarVersionCode
}
}
from zipTree(file('build/intermediates/aar_main_jar/release/classes.jar'))
// [archiveBaseName]-[archiveAppendix]-[archiveVersion]-[archiveClassifier].[archiveExtension]
archiveBaseName = jarBaseName
archiveAppendix = null
archiveVersion = "$jarVersionName-$jarVersionCode"
archiveClassifier = "release"
archiveExtension = "jar"
destinationDirectory = file(jarPath)
}
// dx --dex --output=target.jar origin.jar
task buildDex(dependsOn: ['buildJar'], type: Exec) {
workingDir jarPath
executable "dx"
args "--dex"
args "--output=" + buildJar.archiveFileName.get()
args buildJar.archiveFileName.get()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |