繁体   English   中英

如何从build.gradle中提取buildscript

[英]How to extract buildscript from build.gradle

我的build.gradle中有以下buildscript部分:

buildscript {
    ext {
        nexusUrl = project.hasProperty("myNexusUrl") ? myNexusUrl : "http://10.199.0.99:8081/repository/maven-public/"
    }
    repositories {
        maven { url nexusUrl }
    }
    dependencies {
        classpath group: 'mygroup', name: 'MyGradleLibrary', version: '1.0.1'
    }
}

如何将这段代码提取到外部文件中,以免破坏构建?

在您的媒体库中创建一个插件,然后将其发布到该Nexus。 然后,在您的settings.gradle添加以下行:

pluginManagement {
    repositories {
        maven {
            url "…"
        }
        gradlePluginPortal()
    }

    resolutionStrategy {
        eachPlugin {
            if (requested.id.namespace == 'mygroup.gradle-library') {
                useModule('mygroup.gradle-library:1.0.1')
            }
        }
    }
}

在这里,您声明要用mygroup.gradle-library:1.0.1依赖项替换mygroup.gradle-library插件。

然后只需在build.gradle添加一个插件:

plugins {
    id 'mygroup.gradle-library'
}

现在,你有你的构建类路径依赖项不buildscript块。


编辑

为了将其应用于您的所有项目,请将以下各行放入初始化脚本 ~/.gradle/init.gradle$GRADLE_USER_HOME/init.gradle ):

settingsEvaluated {
    pluginManagement {
        repositories {
            maven {
                url "…"
            }
            gradlePluginPortal()
        }

        resolutionStrategy {
            eachPlugin {
                if (requested.id.namespace == 'mygroup.gradle-library') {
                    useModule('mygroup.gradle-library:1.0.1')
                }
            }
        }
    }
}

之后, plugin块应该工作了。 但是,它将仅对您有效,而对您的队友无效,除非他们也这样做。

如果您不喜欢plugins您仍然可以通过示例脚本来执行“全局”配置。 阅读更多有关可用API的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM