问题
在给Android项目做组件化时,需要提交一个多Module的库到Maven仓库去,如果该库本地依赖了当前库中的子Module,则远程依赖该库的项目无法加载该库中的子Module,解析依赖的时候会报如下错误:
Failed to resolve: ***:unspecified
查看Maven仓库中的pom配置:
<dependency>
<groupId>***</groupId>
<artifactId>***</artifactId>
<version>unspecified</version>
<scope>***</scope>
</dependency>
解决方法
- 将子Module打成包 Android Library打成aar,Java Library打成jar文件,通过添加aar或者jar包依赖 来实现依赖管理
- 上传库到Maven仓库时,通过脚本将本地依赖替换成远程依赖
具体实现
方案一的实现 基本操作~
方案二的实现 基本操作~
—————————华丽丽的分割线——————————
主要记录一下方案二的具体实现
为了方便管理整个库的组和版本号 在根目录下的gradle.properties配置基本信息如:
- GROUP
- VERSION_NAME
- GROUP_DESCRIPTION
- RELEASE_REPOSITORY_URL
- SNAPSHOT_REPOSITORY_URL
- USERNAME
- PASSWORD
在子Module目录下的gradle.properties配置具体子库的信息如:
- POM_NAME
- POM_ARTIFACT_ID
- POM_PACKAGING
- POM_DESCRIPTION
接下来就剩上传Maven仓库的相关脚本了
1 | apply plugin: 'maven' |
在子Module下的build.gradle中apply上面的这个脚本即完成上传的配置,如果子Module比较多,可以直接在本目录的build.gradle中遍历添加apply。
阅读:
∞