将具有多个模块的 Android 库发布到 jFrog 工件时出现问题
Posted
技术标签:
【中文标题】将具有多个模块的 Android 库发布到 jFrog 工件时出现问题【英文标题】:Issue in publishing Android library with multiple modules to jFrog artifactory 【发布时间】:2021-09-27 17:16:33 【问题描述】:我的 android 项目中有 2 个库模块。
mainlibrary
-sublibrary
子库模块正在主库中使用。在build.gradle (Module: mainlibrary)里面,我已经导入了整个子库模块-
implementation project(':sublibrary')
这就是我使用 jFrog 工件将 mainlibrary 作为库发布的方式,代码存在于 build.gradle (Module: mainlibrary) -
publishing
publications
aar(MavenPublication)
groupId 'in.mikel.reusablelibs'
version '1.0.4'
artifactId project.getName()
artifact("$buildDir/outputs/aar/$project.getName()-release.aar")
artifactory
contextUrl = 'https://mikel.jfrog.io/artifactory/'
publish
repository
// The Artifactory repository key to publish to
repoKey = 'mikelcl-gradle-release-local'
username = "***"
password = "***"
defaults
// Tell the Artifactory Plugin which artifacts should be published to Artifactory.
publications('aar')
publishArtifacts = true
// Properties to be attached to the published artifacts.
properties = ['qa.level': 'basic', 'dev.team': 'core']
// Publish generated POM files to Artifactory (true by default)
publishPom = true
我还希望在发布到 jFrog 工件时打包 子库。
我需要在 build.gradle (Module: sublibrary) 中写单独的信息吗?怎么处理?
【问题讨论】:
【参考方案1】:您不必编写单独的 build.gradle 文件。您可以在根 build.gradle 中配置 sublibrary
。
例如:
project('sublibrary')
publishing
publications
aar(MavenPublication)
groupId 'in.mikel.reusablelibs'
version '1.0.4'
artifactId project.getName()
// Tell maven to prepare the generated "*.aar" file for publishing
artifact("$buildDir/outputs/aar/$project.getName()-release.aar")
artifactoryPublish
publications(publishing.publications.aar)
确保在 sublibrary
项目中应用 Artifactory 和 maven-publish 插件:
apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'
阅读更多:
-
Example
Documentation
【讨论】:
以上是关于将具有多个模块的 Android 库发布到 jFrog 工件时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
Android 库 - 使用 Gradle 将多个变体发布到本地 Maven 存储库
将 kotlin 多平台库发布到 Maven Central(InvalidMavenPublicationException 多个工件具有相同的......)