如何强制gradle使用/共享〜/ .m2 /存储库与Maven系统范围?

时间:2014-06-27 14:18:03

标签: gradle

默认情况下,Gradle使用~/.gradle/cache作为Maven工件的缓存。

我还使用Maven并在~/.m2/settings.xml中设置代理和存储库网址,并且不希望将此设置复制到Gradle。

官方解决方案是添加:

repositories {
  mavenCentral()
  mavenLocal()  # <== THIS
}

build.gradle。这需要更改项目构建脚本,不可接受。

是否可以在系统范围内或在项目外设置此设置(不编辑项目自己的文件)?

1 个答案:

答案 0 :(得分:5)

我经常想要mavenLocal用于构建脚本,需要多模块项目,有时需要禁用它,所以这就是我在〜/ .gradle / init.d / mavenLocal.gradle中使用的内容:

allprojects { project ->
    buildscript {
        if( !project.hasProperty('skipMavenLocal') ) {
            repositories {
                println "Adding buildscript mavenLocal()"
                mavenLocal()
            }
            configurations.all {
                resolutionStrategy.cacheChangingModulesFor 0, 'hours'
            }
        }
    }

    if( !project.hasProperty('skipMavenLocal') ) {
        repositories {
            println "Adding mavenLocal()"
            mavenLocal()
        }
    }
}