在我的 Gradle 脚本(0.8 版)中,我有一个用于发布库的本地常春藤存储库,但我似乎无法让 Gradle 忽略它的缓存。
我正在访问本地的常春藤仓库。根据 Gradle 手册中的建议。这里有相关代码(一些变量重命名)。
dependencies{
// [several remote dependencies]
// ...
compile('myorg:mylib:0.1.0')
}
def ivy_repo = new org.apache.ivy.plugins.resolver.FileSystemResolver()
ivy_repo.name = 'ivy-repo'
ivy_repo.addIvyPattern local_repository + '/ivy/[organisation]/'+
'[module]-ivy-[revision].xml'
ivy_repo.addArtifactPattern local_repository + '/ivy/[organisation]/'+
'[module]-[revision](-[classifier]).[ext]'
ivy_repo.descriptor = 'optional'
ivy_repo.checkmodified = true
repositories{
// [several remote repositories]
// ...
add(ivy_repo)
}
我的问题是,当我运行我的脚本时,一旦解决了本地库,随后对构建脚本的调用将使用 ~/.gradle/cache/myorg:mylib/,而不是我本地常春藤存储库的位置。Gradle 手册只有几行提到默认本地存储库不应使用缓存,但我现在找到了实际指示我的存储库是“默认”和本地的方法,因此不应使用缓存。
我试过设置 ivy_repo.local = true,或使用 compile('myorg:mylib:0.1.0'){changeing = true},但似乎都不起作用。
我不想使用 flatDir 存储库,因为本地库具有我希望我的项目找到的依赖项(我现在正在使用与本地库关联的 ivy 文件来执行此操作,并且似乎 flatDir 存储库忽略了这些文件......或者我在那里做错了什么?)
有人知道解决方案吗?或者也许是用 Gradle 完成我的任务的更好方法?