【发布时间】:2015-11-15 08:55:14
【问题描述】:
我有一个库项目,我想用我的模块和库创建一个库 jar。 我有 3 个模块:A、B、C。其中 A 是主要模块。
我正在尝试打包所有内容并对其进行混淆。
我试过这个:
task jarRelease(dependsOn: assemble, type: Jar) {
archiveName = normalReleaseJarName
from('build/intermediates/classes/normal/release/')
from(project(':A').projectDir.absolutePath+'/build/intermediates/classes/release/')
from(project(':B').projectDir.absolutePath+'/build/intermediates/classes/release/')
}
但在这种情况下,类没有被混淆。
我也尝试使用 gradle WITH proguard 创建的 classes.jar
ask to export contents as jar
task exportJarRelease(dependsOn: exportSdkDocs, type: Copy) {
from('build/intermediates/bundles/release/')
into('outputFiles/libs')
include('classes.jar')
rename('classes.jar', 'MyJar.jar')
}
但在这种情况下,我找不到里面的 B 或 C 模块,但是这些类被混淆了。
我还可以补充一点,我尝试使用带有 proguard 和 B/C 类路径的“-injars”,但我得到了“重复的类”(这没有意义)并且 B/C 模块不在输出 classes.jar
我向你们所有的 gradle 专家打电话!必须有一个包含所有项目依赖项的打包库 jar 的答案!
谢谢!
你可能想知道的构建 gradle 信息:
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
dependencies {
compile project(':A')
compile project(':B')
}
【问题讨论】:
标签: android android-studio gradle android-library android-proguard