android - 如何在我的 Maven 本地存储库中使用 gradle 发布现有的 aar?

标签 android gradle android-gradle-plugin maven-publish

我有一个具有以下结构的项目:

  • 项目根
  • build.gradle
  • 模块1/
  • build.gradle
  • artifact1.aar
  • 模块2/
    ....

  • 我的 artifact1.aar 是一个编译的工件,我无法访问源代码。

    我的模块 1 gradle 构建文件如下:
    configurations.maybeCreate("default")
    artifacts.add("default", file('artifact1.aar'))
    

    有了这个, .aar 中包含的代码可以通过简单地引用 gradle 项目依赖项在模块 2 中使用。

    但我想在我的本地 maven 中发布 .aar,以便其他 android 项目可以访问它。

    我检查了 maven-publish 插件和 android-maven-publish 插件,但这两个插件似乎是在 java-library 插件或 com.android.library 插件之后调用的。

    所以我的问题是如何在我的 Maven 本地存储库中使用 gradle 发布现有的 aar ?

    我在 4.8 版中使用 gradle。

    最佳答案

    我在这个例子中使用了 rxbinding aar。

  • 正如您正确提到的,“发布者”项目中必须有一个子项目,其中必须包含 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 集成。插件自动发布项目的默认工件。
  • 现在运行 ./gradlew rxbinding:publishToMavenLocal - 这应该将工件放入您的本地仓库
  • 添加 implementation 'my.sample.artifact:somerandomname:1.0.0'在您机器上的任何项目中到消费者应用程序。

  • 提及任何以这种方式发布的 aar 非常重要,不会带来它的依赖项,因此您必须知道实际使用已发布的 aar 需要哪些库。

    我还创建了一个 example project , 你可以在哪里试试这个。

    关于android - 如何在我的 Maven 本地存储库中使用 gradle 发布现有的 aar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51783925/

    相关文章:

    android - 在方向更改后停止显示对话框

    Android 到 PC 通信

    java - 单击 TextView 后 Android 应用程序停止工作

    java - 无法应用插件 'com.google.protobuf'

    Android Studio 3rd 方库集成

    android - Gradle Test Executor使用非零退出代码完成

    Android:媒体扫描器未运行的问题

    ear - Gradle - 如何创建ear文件

    android-studio - 我更新了 Android Studio,现在 gradle 项目同步失败

    java - Gradle停止构建任务