2017-02-09 87 views
0

我想發佈build.gradle文件的一些通用部分,以便可以在不同的項目中重用(使用apply from: url_to_file構造)。要做到這一點,我創建了一個名爲gradle這個常見的是含有這些共同構建文件的項目,這個build.gradle文件:發佈可重用的gradle任務

group 'org.example' 
version '0.1.0' 

apply plugin: 'maven-publish' 

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      artifact source: file('files/first.gradle'), classifier: 'first' 
     } 
     mavenJava(MavenPublication) { 
      artifact source: file('files/second.gradle'), classifier: 'second' 
     } 
    } 
    repositories { 
     mavenLocal() 
    } 
} 

文件中Maven倉庫發佈後有文件,如:

  • gradle這個-common-0.1.0-first.gradle
  • gradle這個常見-0.1.0-second.gradle

我的問題是:我如何從公共區域刪除版本號遺漏的工件和classfier?對我來說,理想的文件將是:

  • first.gradle
  • second.gradle

回答

0

有許多不同的答案,你的問題,但我認爲你正在試圖通常創造的東西,一個插件沒有創建插件。

向多個gradle項目添加功能的最佳方式是create a plugin。您還可以利用Rules這個簡單的教程沒有顯示,但您可以檢查一些gradle原生插件,如maven-publish

要回答你的問題,不可能在沒有版本的情況下將工件發佈到Maven存儲庫。您必須下載一個版本(您可以使用my-artifact:1+下載最新版本),然後自行剝離版本。


我也想知道你打算如何將這些文件包含到你的特定gradle文件中。您將無法將它們用作依賴項,因爲依賴性解析發生在讀取腳本之後。如果你在腳本運行之前以某種方式下載它們,那麼你可能不需要一個Maven倉庫。

+0

1.我知道我需要版本,但它在url中是兩次。發佈後,我可以通過訪問文件:https://repository_url/group_name/gradle-common/0.1.0/gradle-common-0.1.0-first.gradle,但我想有像這樣的網址:https:// repository_url /group_name/gradle-common/0.1.0/first.gradle 2.我的第一個想法是放入這個文件sonarqube插件配置 - 有一些屬性必須定義,可以爲許多項目定義一個 - 那裏無需在每個build.gradle文件中定義它們 –