这个问题源于我不是Gradle专家,而且我来自Eclipse + Maven背景。
在Maven中,我能够从另一个项目(例如Robolectric子项目)引用我的apk项目,因为android-maven-plugin
正在推动.apk
和(un-dexed){ {1}}在我的本地存储库中。
如何在Android Studio + Gradle中实现相同功能?
.jar
添加到我的应用项目中,但java插件与Android插件不兼容。我尝试使用带有apply plugin: 'java'
的java插件构建我的应用程序的子模块,但是R.java不是以这种方式生成的:
build.gradle
还有其他办法吗?
EDIT4:发布解决方案。
答案 0 :(得分:0)
我编辑的解决方案实际上效果很好。我在这里报告它作为解决方案。 注意,它硬编码类文件的路径,我无法找到如何在其中使用$ buildType(有办法吗?)
def variantName = "debug" // init to debug
apply plugin: 'android'
android {
...
applicationVariants.all { variant ->
variantName = variant.name
buildDebugJar.dependsOn variant.packageApplication
}
}
// Builds the jar containing compiled .java files only (no resources).
task buildJar(type: Jar) {
description 'Generates the jar file along with the apk.'
from new File("$project.buildDir/classes/$variantName")
}
configurations {
jarOfApk
transitive = false
}
artifacts {
jarOfApk buildJar
}
引用模块将以这种方式声明一个新的依赖:
compile project(path: ':app', configuration: 'jarOfApk')