如何让gradle覆盖我当地的maven仓库中的库?

时间:2014-10-02 19:37:43

标签: java android maven gradle repository

我目前正在开发三个android项目 - 让我们称之为Alpha,Bravo和Charlie。 Bravo和Charlie都依赖Alpha,一个安卓库。当我创建Alpha时,我使用./gradlew install将其部署到我的本地maven存储库,如果我在Bravo和Charlie的build.gradle文件中使用以下内容,则可以正常工作:

dependencies {
      compile 'com.blah.alpha:alpha:1.1.0+@aar'
}
但是,问题在于,所有三个项目都在开发中。因此,当我对Alpha进行更新并将其部署到我的本地Maven存储库时,除非我执行以下操作,否则Bravo和Charlie似乎看不到本地版本:

$ cd ~/.m2/repository/com/blah/alpha/
$ rm -rf 1.1.0
$ cd -
$ ./gradlew install

也就是说,我需要在部署之前手动完成并清理我的本地Maven存储库。版本号没有变化,所以我想知道这是不是因为它没有得到最新版本的库。

1 个答案:

答案 0 :(得分:2)

该静态版本是其中的一部分。您可以将版本更改为1.1.0-SNAPSHOT,Gradle会考虑更改"更改"模块。但是,Gradle默认情况下仍会每24小时重新下载一次工件。您可以覆盖此行为并指示Gradle根本不缓存更改模块。更多信息可以在Gradle docs

中找到
configurations.all {
    resolutionStrategy {
        cacheChangingModulesFor 0, 'seconds'
    }
}

如果您不想更改工件版本,可以尝试使用ResolutionRules

编辑:您可以告诉Gradle您的依赖项是一个不断变化的依赖项。

compile('com.blah.alpha:alpha:1.1.0+@aar') {
    changing true
}