我有一个远程maven服务器设置用于托管工件,以加快Android项目的gradle构建时间。但是,我一直试图找到一种方法来在使用这些远程模块之间切换,并通过在本地构建new_imm = np.expand_dims(imm,axis=-1)
目标来使用这些工件的本地实例,以便我可以测试对库项目的更改。
对于我的项目,我有4种构建变体:
在我的应用级build.gradle的project
部分,我希望能够像这样声明依赖关系:
dependencies
但是,如果我尝试构建debugLocal变体,我会得到dex merge错误,因为implementation 'com.remote:dependency1:x.x.x'
implementation 'com.remote:dependency2:x.x.x'
debugLocalImplementation project(':dependency1')
debugLocalImplementation project(':dependency2')
配置仍然包含远程依赖项。
到目前为止,我发现能够“关闭”远程依赖项的唯一方法是为每个远程依赖项声明特定于变体的配置,如下所示:
implementation
随着库或构建类型数量的增加,这种声明/管理依赖关系的方式也会增长。有没有更好的方法来指定在我们运行debugLocal buildType时使用本地库版本(并排除远程库)?
答案 0 :(得分:0)
"实施"实际上构建你在android studio中在build variant section.eg中选择的变体 - 如果你选择了debug那么它就像debugImplemention。
为了保持分开,请使用产品口味。
在您的情况下,您可以创建
productFlavors {
local {
}
remote {
}
}
创建本地文件夹并在那里添加依赖项。 创建远程文件夹并在那里添加依赖项。
现在,当您使用buildvariants构建时,您将看到localDebug。您还可以更改remoteDebug并运行。
您还可以根据Buildtypes.Like localDebug创建文件夹并添加库。