使用maven仓库中的gradle插件

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'
}
上一篇:No ‘Access-Control-Allow-Origin‘ header is present on the requested resource Vue配置代理解决跨域问题


下一篇:Java单体应用 - 项目实战(后台) - 02.首页布局