gradle plugin的使用文档: https://docs.gradle.org/current/userguide/plugins.html
gradle插件的命名限定方式与maven有些许差别,一般发布maven插件不会按照gradle插件默认的命名格式进行。 因此我们要使用存放在maven仓库中的gradle插件,就需要做一些转换。
官方问当给出的配置方式个人感觉不是很合理,官方使用namespace
进行配置。
需要注意的是针对一个gradle插件:id 'com.example.sample-plugins' version '1.0.0'
,
其requested.id.namespace
为:com.example
其requested.id.id
为:com.example.sample-plugins
其requested.id.name
为:sample-plugins
其requested.version
为:1.0.0
因此我们可以使用如下方式配置一个插件的转换,或者当maven仓库命名也不符合这种规则时直接写死maven的groupId和artifactId及版本号。
settings.gradle
pluginManagement {
plugins {
}
resolutionStrategy {
eachPlugin {
if (requested.id.id == 'com.example.sample-plugins') {
//useModule('com.example:sample-plugins:1.0.0')
useModule(String.join(":" ,requested.id.namespace, requested.id.name, requested.version))
}
}
}
repositories {
gradlePluginPortal()
mavenLocal()
mavenCentral()
maven {
allowInsecureProtocol = true
url = 'http://my-own-repo-url/'
}
}
}
rootProject.name = 'my-project'
经过转换之后,在build中正常使用插件:
build.gradle
plugins {
id 'com.example.sample-plugins' version '1.0.0'
}