Android Artifactory仓库使用

Android Artifactory----依赖管理说明

作者:

代码管理

代码版本控制统一基于GitHub管理,使用方式基于Android Studio的gradle方式依赖,所有Library配置内部仓库地址,上传到内部JCenter仓库来管理依赖,编写Readme文档,列出功能描述、使用方式以及其他需要注意事项,比如混淆配置。

Android JCenter本地仓库

搭建仓库的目的

  • 搭建本地仓库方便依赖管理,避免多人多次同步网络仓库
  • 组件化拆分,网络上一些开源库大多功能臃肿,很多时候不需要那么多的功能,所以需要拆分以减小APK大小,以及代码编译速度

仓库上传步骤

Demo地址

  • 检测你的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';
}

你可能感兴趣的:(Android Artifactory仓库使用)