我想在Gradle中使用新的花哨plugin { id: ''}
语法,并使用存储在公司Artifacotry中的自定义内部插件。为了做到这一点,我可以在settings.gradle only中为Gradle Plugin Repostiory设置maven资源库。
我想在我的自定义Gradle包中全局设置它,该包将使用Gradle包装器下载。我可以在$ GRADLE / init.d / repositories.gradle脚本中定义全局依赖存储库和buildscript依赖存储库,但我无法为Gradle Plugin Registry执行此操作,因为它需要放在settings.gradle中。
我怎样才能做到这一点?
答案 0 :(得分:1)
您可以使用Gradle API中的settingsEvaluated方法来完成此操作。
将以下内容放入初始化脚本中。
def ENTERPRISE_REPOSITORY_URL = "https://repo.gradle.org/gradle/repo"
settingsEvaluated { setting ->
setting.pluginManagement.repositories {
// Remove all repositories not pointing to the enterprise repository url
all { ArtifactRepository repo ->
if (!(repo instanceof MavenArtifactRepository) ||
repo.url.toString() != ENTERPRISE_REPOSITORY_URL) {
project.logger.lifecycle "Repository ${repo.url} removed. Only
$ENTERPRISE_REPOSITORY_URL is allowed"
remove repo
}
}
// add the enterprise repository
maven {
name "STANDARD_ENTERPRISE_REPO"
url ENTERPRISE_REPOSITORY_URL
}
}
}