将 Android 库发布到带有依赖 aar 文件的 Jfrog 工件

问题描述 投票:0回答:1

我有一个 Android 库项目,其中包含外部 aar 文件。我已将 aar 文件添加为子模块,而不是将其添加到 libs 文件夹中。所以项目结构如下:

图书馆模块
-子模块(build.gradle,submodule.aar)

我的子模块文件夹中只有两个文件,一个是 submoudle.aar,另一个是 build.gradle 文件,如下:

子模块gradle文件:

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

库gradle文件:

dependencies {
  api fileTree(dir: 'libs', include: ['*.jar'])
  api 'androidx.core:core-ktx:1.10.1'
  api 'androidx.fragment:fragment-ktx:1.6.0'
  api platform('org.jetbrains.kotlin:kotlin-bom:1.8.0')
  api 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.1'
  api 'com.google.android.material:material:1.11.0-alpha01'

  api project(':librarymodule:submodule')
}

publishing {
 publications {
    release(MavenPublication) {
        from components.findByName('release')
        groupId = 'com.groupId '
        artifactId = 'artifactId '
        version = '0.0.4'
        artifact("$buildDir/outputs/aar/library-release.aar")

        pom.withXml {
            // for dependencies and exclusions
            def dependenciesNode = asNode().appendNode('dependencies')
            configurations.implementation.allDependencies.each {
                def dependencyNode = dependenciesNode.appendNode('dependency')
                dependencyNode.appendNode('groupId', it.group)
                dependencyNode.appendNode('artifactId', it.name)
                dependencyNode.appendNode('version', it.version)
            }
        }
    }
}

repositories {
    maven {
        url = uri("https://testeandroid.jfrog.io/artifactory/test/")
        credentials {
            // Use properties or environment variables for secure credential storage
            username = "test"
            password = "sadfsadfafsa"
        }
    }
  }
}

使用上面的脚本,我能够成功地将我的库发布到具有 Android 依赖项(例如材料和片段等)的工件,如 POM 文件中所示。但是子模块中的aar文件没有发布。如何在 artifcatory 上将 aar 文件与我的库打包?

android maven gradle artifactory android-library
1个回答
0
投票

您可以将 aar 作为文件导入,将其放入 libs/ 中,或者创建一个胖 AAR。后者可能适用于您的设置(https://github.com/kezong/fat-aar-android/

请问,为什么要导入 aar 作为子模块?

© www.soinside.com 2019 - 2024. All rights reserved.