簡體   English   中英

如何在我的Maven本地存儲庫中發布帶有gradle的現有aar?

[英]How to publish in my maven local repository an existing aar with gradle?

我有一個具有以下結構的項目:

  • projectRoot

  • build.gradle

  • 模塊1 /

    • build.gradle

    • artifact1.aar

  • module2 / ....

我的artifact1.aar是已編譯的工件,我無法訪問源。

我的模塊1 gradle構建文件如下:

configurations.maybeCreate("default")
artifacts.add("default", file('artifact1.aar'))

這樣,只需引用gradle項目依賴項,模塊2中就可以使用.aar中包含的代碼。

但我想在我的Maven本地發布.aar,以便其他Android項目可以訪問它。

我檢查了maven-publish插件和android-maven-publish插件,但兩者似乎在java-library插件或com.android.library插件之后被調用。

所以我的問題是如何在我的Maven本地存儲庫中發布帶有gradle的現有aar?

我在4.8版中使用gradle。

在此示例中,我使用了rxbinding aar。

  1. 正如您正確提到的,“發布者”項目中必須有一個子項目,該子項目必須包含aar和一個包含以下內容的構建文件:

     // rxbinding/build.gradle apply plugin: "maven-publish" configurations.maybeCreate("default") def publishArtifact = artifacts.add("default", file('rxbinding-2.1.1.aar')) publishing { publications { aar(MavenPublication) { groupId = 'my.sample.artifact' artifactId = 'somerandomname' version = '1.0.0' artifact publishArtifact } } } 

    您可以將maven-publish插件應用於任何項目,但是隨后您必須手動定義工件,就像我們在這里所做的那樣。 一些插件(例如java-library插件)與maven-publish插件集成在一起,以自動發布項目的默認工件。

  2. 現在運行./gradlew rxbinding:publishToMavenLocal這應該將工件放入本地./gradlew rxbinding:publishToMavenLocal

  3. 在計算機上的任何項目中,將implementation 'my.sample.artifact:somerandomname:1.0.0'到使用者應用程序。

提及以這種方式發布的任何aar都非常重要,不會帶來它的依賴關系,因此您必須知道實際使用發布的aar所需的庫。

我還創建了一個示例項目 ,您可以在其中進行嘗試。

如果已安裝maven,則可以使用maven-install-plugininstall-file目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM