Android Artifactory----依赖管理说明
作者:
代码管理
代码版本控制统一基于GitHub管理,使用方式基于Android Studio的gradle方式依赖,所有Library配置内部仓库地址,上传到内部JCenter仓库来管理依赖,编写Readme文档,列出功能描述、使用方式以及其他需要注意事项,比如混淆配置。
Android JCenter本地仓库
搭建仓库的目的
搭建本地仓库方便依赖管理,避免多人多次同步网络仓库
组件化拆分,网络上一些开源库大多功能臃肿,很多时候不需要那么多的功能,所以需要拆分以减小APK大小,以及代码编译速度
仓库上传步骤
检测你的jdk版本是否为1.8及以上
java -version
创建library project,在Project下的build.gradle文件添加
buildscript {
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1"
}
}
module引用插件
apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'
配置maven和artifactory
配置项目参数
以Utils项目,包名为com.adinnet.utils为例
groupId:com.adinnet.utils // 一般为包名
artifactId:utils // 一般为library module名字
version:1.0.0 // 当前library版本号
示例:
def packageName = 'com.adinnet.utils'
def libraryVersion = '1.0.0'
publishing {
publications {
aar(MavenPublication) {
groupId packageName
version = libraryVersion
artifactId project.getName()
// Tell maven to prepare the generated "*.aar" file for publishing
artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
}
}
}
配置Artifactory仓库参数
在library module的gradle文件添加
artifactory {
contextUrl = 'http://localhost:8081/artifactory' // 表示要发布到哪里去,上下文连接
publish {
repository {
repoKey = 'libs-release-local' // artifactory分支,可在artifactory查看
username = "admin" // artifactory 默认管理员
password = "password" // artifactory 默认管理员密码
}
defaults {
publications('aar') // 表示要发布的文件类型
publishArtifacts = true
properties = ['qa.level': 'basic', 'dev.team': 'core']
publishPom = true // 是否将自动生成的pom.xml文件发布到Artifactory
}
}
}
打包并发布到Artifactory
在library主项目下,执行gradle命令
gradlew assembleRelease artifactoryPublish
assembleRelease在前表示先打包,artifactoryPublish在后表示打包完以后发布到artifactory当中,完成后打开Artifactory检查libs-release-local目录
引用本地仓库的library
在Project的build.gradle文件添加地址
allprojects {
repositories {
jcenter()
maven { url "http://localhost:8081/artifactory/libs-release-local"} // localhost IP
}
}
在其他module中引用
dependencies {
compile 'com.adinnet.utils:utils:1.0.0';
}