我有一个 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 文件与我的库打包?
您可以将 aar 作为文件导入,将其放入 libs/ 中,或者创建一个胖 AAR。后者可能适用于您的设置(https://github.com/kezong/fat-aar-android/)
请问,为什么要导入 aar 作为子模块?