有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何让gradle在本地maven repo中覆盖库?

我有三个安卓项目正在开发中——让我们称它们为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) 个答案

  1. # 1 楼答案

    静态版本就是其中的一部分。您可以将您的版本更改为1.1.0-SNAPSHOT,Gradle认为这是一个“正在更改”的模块。然而,Gradle仍然默认每24小时重新下载一次工件。您可以重写此行为,并指示Gradle根本不缓存更改的模块。更多信息可以在Gradle docs中找到

    configurations.all {
        resolutionStrategy {
            cacheChangingModulesFor 0, 'seconds'
        }
    }
    

    如果你不愿意更改你的工件版本,你可以尝试使用^{}

    编辑:你可以告诉Gradle你的依赖关系是一个不断变化的依赖关系

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