[英]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.