1. 程式人生 > >Gradle自定義外掛,釋出專案到jcenter

Gradle自定義外掛,釋出專案到jcenter

1、Gradle自定義外掛

原始碼:百度雲【Gradle Plugin】

  • 方法一:直接寫在 build.gradle中。 (僅適用於當前moudle)
  • 方法二:plugin原始碼放到rootProjectDir/buildSrc/src/main/groovy目錄下。(僅適用於當前專案)
  • 方法三:plugin打包成jar, 釋出到maven倉庫, 然後專案通過Build Script依賴jar的形式引入。 (公開發布,適用所有專案)

新舊maven外掛對比

  • 新版使用:apply plugin: ‘maven-publish’ (Gradle 1.3 +)
  • 舊版使用:apply plugin: ‘maven’ (Gradle 1.0)

方法二注意事項:

  • 目錄結構,必須是groovy,不能是java。(可以先新增java Librry型別的Module,然後將src/main/java修改為src/main/groovy)
  • 外掛檔案格式,必須是.groovy;例如:BuildSrcPlugin.groovy

方法三注意事項:

  • 步驟和目錄結構可以參考部落格內容
  • properties檔案內容中指明實現類:implementation-class=com.kedacom.all.StandAlonePlugin
  • 要確保外掛已經發布成功,才能在專案中引入、使用外掛
  • 強烈建議【外掛project】 和 【使用外掛的project】各自獨立(避免外掛釋出時受引用的干擾)
  • 沒有指定group的Task,會出現在Tasks/other目錄下

2、使用Gradle釋出專案到Jcenter倉庫

我的bintray:

新版Bintray有所變動,引入了 Organizations 的概念。

1、建立一個 Organizations:caowj
2、建立一個 repo:maven
3、執行gradlew bintrayUpload

原始碼:【GradlePluginPublish】

3、補充:

釋出外掛專案和釋出lib專案原理是相同的。

3.1、如果釋出的是外掛專案,使用時:

1、在根build.gradle中加入:

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        classpath 'com.kedacom.all.ynpplugin:app:1.0.0' //和釋出時的命名保持一致
    }

2、在APP的build.gradle中加入:

apply plugin: 'com.kedacom.all.StandAlone' //和properties檔名稱保持一致

3、測試:
在Terminal中輸入:gradle personInfoTask

3.2、如果釋出的是lib專案,使用時:

在APP的build.gradle中加入:

implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'