对于我的Android库,我使用“UploadArchives”任务来部署AAR:
uploadArchives {
repositories.mavenDeployer {
configuration = configurations.deployLibrary
pom.groupId = groupId
pom.artifactId = artifactId
pom.version = version
uniqueVersion = false
repository(url: "${RemoteReleaseDest}")
snapshotRepository(url: 'file://' + "${localReleaseDest}") { }
}
}
其中“RemoteReleaseDest”是远程存储库,“localReleaseDest”指向我的本地maven存储库(C:/User/me/.m2.repository)。
这项工作非常适用于发行版ex:myaar:2.0.0(我也可以将“RemoteReleaseDest”设置为我的本地.m2存储库以强制在其上部署版本。
然后当我在我的android项目中配置依赖项时,如下所示:
compile 'mygroupId:myartefact:2.0.0'
正确解析了依赖关系(甚至来自我的本地存储库)。 但如果我尝试使用snaptshot:
compile 'mygroupId:myartefact:2.0.0-SNAPSHOT'
gradle无法解决依赖关系。在gradle日志中,我可以看到它正在我的.m2本地存储库中进行搜索。
但是,如果我使用参数
上传快照存档uniqueVersion = true
gradle可以解决依赖关系!
这种情况下的问题是,每次启动任务“uploadArchives”时,我都会在本地SNAPSHOT目录下创建新的AAR,xml,md5等文件。
那么为什么gradle在使用参数uniqueVersion = false
部署快照时无法解析快照依赖关系?如何管理此问题?