如何预配置Gradle Plugin Repository?

时间:2016-11-03 08:20:33

标签: gradle gradle-plugin

我想在Gradle中使用新的花哨plugin { id: ''}语法,并使用存储在公司Artifacotry中的自定义内部插件。为了做到这一点,我可以在settings.gradle only中为Gradle Plugin Repostiory设置maven资源库。

我想在我的自定义Gradle包中全局设置它,该包将使用Gradle包装器下载。我可以在$ GRADLE / init.d / repositories.gradle脚本中定义全局依赖存储库和buildscript依赖存储库,但我无法为Gradle Plugin Registry执行此操作,因为它需要放在settings.gradle中。

我怎样才能做到这一点?

1 个答案:

答案 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
        }
    }
}