在Android Gradle中,是否有任何方法可以使用本地快照依赖项?
我的Android应用程序是基于Gradle的,每次构建都需要很长时间。这是由于我拥有的模块数量。即使子模块中没有变化,它也会继续重建每个源。 我想知道是否有任何方法可以将这些模块转换为本地快照依赖项,因为我不经常更新它们? 我很确定这是可能的,但我对gradle和maven有着非常基本的经验,所以我想不出一个简单的方法来做到这一点 基本上现在我列出了我的依赖项,如下所示:在Android Gradle中,是否有任何方法可以使用本地快照依赖项?,android,gradle,build-dependencies,Android,Gradle,Build Dependencies,我的Android应用程序是基于Gradle的,每次构建都需要很长时间。这是由于我拥有的模块数量。即使子模块中没有变化,它也会继续重建每个源。 我想知道是否有任何方法可以将这些模块转换为本地快照依赖项,因为我不经常更新它们? 我很确定这是可能的,但我对gradle和maven有着非常基本的经验,所以我想不出一个简单的方法来做到这一点 基本上现在我列出了我的依赖项,如下所示: dependencies { compile project(':Library:lib1') comp
dependencies {
compile project(':Library:lib1')
compile project(':Library:lib2')
compile project(':Library:lib3')
}
repositories {
local()
}
dependencies {
compile 'com.lib1:lib:SNAPSHOT-1.0')
compile 'com.lib2:lib:SNAPSHOT-1.0')
compile 'com.lib3:lib:SNAPSHOT-1.0')
}
我想用这样的东西:
dependencies {
compile project(':Library:lib1')
compile project(':Library:lib2')
compile project(':Library:lib3')
}
repositories {
local()
}
dependencies {
compile 'com.lib1:lib:SNAPSHOT-1.0')
compile 'com.lib2:lib:SNAPSHOT-1.0')
compile 'com.lib3:lib:SNAPSHOT-1.0')
}
要使用本地快照,请使用插件。如果在版本(例如0.0.1-SNAPSHOT)中使用快照,则将快照发布到本地存储库。对于lib1的build.gradle,您应该执行以下操作:
apply plugin: 'java'
apply plugin: 'maven-publish'
project.version=0.0.1-SNAPSHOT
publishing {
publications {
maven(MavenPublication) {
from components.java
}
}
}
并运行:publishMavenPublicationToVenLocal目标
在使用库的项目的渐变生成文件中,请使用:
repositories {
local()
}
dependencies {
compile group: 'com.lib1', name: 'lib', version: 'SNAPSHOT-0.0.1', changing: true
}
“更改”属性表示未使用缓存版本(通常每24小时更新一次),但始终检查最新版本 您确定子项目已重新编译吗?我拥有的项目似乎不是这样,尽管它确实合并了库项目中的资源。我想当你从其他地方得到libs的时候,这种情况不会改变……我不确定它是否在重新编译,但它是在用模块做东西。通过命令行运行要快得多(我将使用shell脚本作为更快运行的变通方法)。但即使这样,它也在处理模块(mergeReleaseAssets、mergeReleaseResources、ProcessReleaseMifest等),而不处理远程编译的依赖项。Gradle的输出是什么?在构建lib1时是否会显示“最新”?如果是这样,它将跳过构建libs。部分构建是Gradle的主要功能之一。