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

gav*_*koa 4 gradle

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

我也使用Maven并在其中设置代理和存储库URL,~/.m2/settings.xml并且不想将此设置复制到Gradle。

官方解决方案是添加:

repositories {
  mavenCentral()
  mavenLocal()  # <== THIS
}
Run Code Online (Sandbox Code Playgroud)

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

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

小智 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()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)