天天看點

自定義插件,提供給其他項目使用

  • 将buildSrc 目錄複制一份,修改檔案夾名,然後在 settings.gradle 檔案中,使其作為1個子子產品
  • 在插件子子產品的build.gradle中配置如下
# 添加插件
apply plugin: 'maven-publish' 

publishing {
    publications { myLibrary(MavenPublication) {
        groupId = 'com.atguigu.plugin' //指定GAV坐标資訊
        artifactId = 'library' 
        version = '1.1' 
        from components.java//釋出jar包
        //from components.web///引入war插件,釋出war包
        }
    }
    repositories {
         maven { url "$rootDir/lib/release" }
        <!-- //釋出項目到私服中
        maven {
            //name屬性可選,表示倉庫名稱
            name = 'myRepo' 
            // url必填
            // 釋出位址:可以是本地倉庫或者maven私服
            // url = layout.buildDirectory.dir("repo")
            // url='http://my.org/repo' 
            // change URLs to point to your repos, e.g. http://my.org/repo 
            // 認證資訊:使用者名和密碼
            credentials {
                username = 'joe' 
                password = 'secret' 
            }
        } -->
    }
}      
  • 執行 publish 指令,釋出到根 project 或者 maven 私服倉庫
# 如下3個按鈕表示釋出到項目根路徑的lib/release、本地maven倉庫、maven私服
# 這裡點選第1個按鈕      
  • 測試
# 在父工程的build.gradle中引入該插件
buildscript {
    repositories {
        maven { 
            url "$rootDir/lib/release" 
        }
    }
    dependencies {
        classpath "com.atguigu.plugin:library:1.1" 
    }
}

apply plugin: 'java' //是在 atguiguplugin 中定義的插件 ID
apply plugin: 'com.atguigu.plugin'

# 指令行進入項目根路徑
gradle build