我有一个Android项目,这取决于纯Java项目。它们都依赖于另一个Java库,也在Android Studio中的多项目gradle集中。我有两个版本的库,并希望Android和Java项目在调试模式下依赖于其中一个,而另一个 - 在发布中。
Android项目有可能吗?对于纯Java项目?怎么样?
答案 0 :(得分:58)
构建类型(调试,发布或自定义)可以有自己的依赖项。
要指定特定于构建类型的依赖项,请执行以下操作:
dependencies {
debugCompile "mydebugdependency"
releaseCompile "myreleasedependency"
}
如果你的java项目和android项目都使用gradle,你可以在他们的build.gradle文件中执行上述操作。
答案 1 :(得分:36)
我的buildDebug
依赖也被忽略了。我的设置是应用程序模块和库模块,我需要将构建类型从应用程序传播到库模块,即,当我在应用程序上编译调试类型时,我也想获得库调试类型。
如上所述,我尝试在app gradle
文件上为每个构建类型设置特定依赖项,但无济于事:
buildTypes {
debug {
debuggable true
applicationIdSuffix ".debug"
dependencies {
debugCompile project(":library")
}
}
}
最终我的诀窍是:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Library-Publication
所以,现在在app gradle
文件的全局依赖项范围内管理(依赖于)库依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
releaseCompile project(path: ':library', configuration: 'release')
debugCompile project(path: ':library', configuration: 'debug')
}
并且必须将其添加到库的gradle构建文件中:
android {
publishNonDefault true
}
这将发布所有依赖项'构建类型。请注意,如果编译依赖项需要花费大量时间,则此解决方案可能不适合您。
答案 2 :(得分:3)
您可以使用下一个模式
执行此操作 build_variant_name dependency_configurations “依赖关系”
build_variant_name dependency_configurations 项目(路径:':libName',配置:'libName'的build_variant_name)
例如
var parsedObj = JSON.parse(yourObj);
您可以阅读更多相关信息 构建变体 - https://developer.android.com/studio/build/build-variants 依赖配置 - https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration#new_configurations