使用ArtiFactory

由于公司项目需要,现需要将一些公用的工具、组件、封装至Maven 仓库,以提供于其他项目的使用,避免复制粘贴的出现。众人拾柴火焰高。这样经过大家共同的努力,从而是该工具库变得更加的完善和健壮。为此使用ArtiFactory,当然也可以使用 Bintray。亦是公司需要,使用ArtiFactory。
现做出记录:

注意:

因为该工具的使用,需要使用Java JDK 1.8 以上,所以,在使用之前我们先检查下自己的JDK版本。 使用 java version 命令在控制台输出
自己JDK所在的开发环境的版本。

配置ArtiFactory环境

1、下载ArtiFactory ,下载地址:https://bintray.com/。下载完成之后解压进入bin 目录找到artifactory.bat文件点击直接运行,启动本地服务。测试是否成功的配置好来了artifactory 环境使用 :http://localhost:8081/artifactory,看是否能够打开 Artifactory 界面。当我们创建Artifactory 的使用默认是为们提供了账号和密码,然后即可登陆。

username = “admin”
password = “password”

2、然后 New Local Repository,选择 Gradle 项目类型。并填写Repository Key该仓库的Key 你可以认为是一个分支。

项目中的使用

在我们项目的根 buil.gradle 文件中添加

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1"
    
    }
}

在我们Module 文件的build.gradle 文件中配置

apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

配置POM 文件

  • 定义常量
def MAVEN_LOCAL_PATH ='http://localhost:8081/artifactory'

def ARTIFACT_ID = 'utils'    //Utils common

def VERSION_NAME = '1.0.2'   //version Code

def GROUP_ID = 'com.andorid'        //packname
  • 开始配置

      def MAVEN_LOCAL_PATH ='http://localhost:8081/artifactory'
      def ARTIFACT_ID = 'utils'
      def VERSION_NAME = '1.0.2'
      def GROUP_ID = 'com.andorid'
      publishing {
          publications {
              aar(MavenPublication) {
                  groupId GROUP_ID
                  version = VERSION_NAME
                  artifactId ARTIFACT_ID
                  // Tell maven to prepare the generated "*.aar" file for publishing
                  artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
                  pom.withXml {
                      def dependencies = asNode().appendNode('dependencies')
                      configurations.compile.allDependencies.each{
                          // 如果有compile fileTree(),group会为空,需要去除
                          if(it.group != null) {
                              def dependency = dependencies.appendNode('dependency')
                              dependency.appendNode('groupId', it.group)
                              dependency.appendNode('artifactId', it.name)
                              dependency.appendNode('version', it.version)
                          }
                      }
                  }
              }
          }
      }
    

配置Artifactory 上传

    artifactory {
        contextUrl = MAVEN_LOCAL_PATH
        publish {
            repository {
                repoKey = 'demo-test-key'
                username = "admin"
                password = "password"
            }
            defaults {
                publications('aar')
                publishArtifacts = true
                properties = ['qa.level': 'basic', 'dev.team': 'core']
                publishPom = true
            }
        }
    }

**repoKey **该变量值为 在Artifactory 平台配置的仓库分支,也就是我们最终的代码将会在该目录下生成。

测试上传

  • 执行三步

    点击打开Module 项目的buildGradle 分别为以下三个步骤

    • build–>assembleRelease 生成Release 包
    • publishing–>generatePomFileForAarPublication 生成POM 文件
    • artifactoryPublish 上传aar 文件

然后我们即可在Artifactory 平台观测到我们刚才上传的aar 包文件。

使用方式##

在项目的根build.gradle 目录中添加如下代码

allprojects {
    repositories {
        jcenter()
        maven { url "http://localhost:8081/artifactory/demo-test-key/" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

这里需要说明的是demo-test-key 为我们repoKey 也就是仓库的分支。

项目的build.gradle 文件的配置

dependencies {
    ;;;;;;;;;;;;
    // 依赖配置
    compile 'com.andorid:utils:1.0.2'
}

这里同样需要主要的是我们的依赖配置的定义规则如下

规则

 group_id : com.andorid
 artifact_id : utils
 version_name: 1.0.2

项目Gradle 依赖配置

group_id:artifact_Id:version_name  对比  'com.andorid:utils:1.0.2'
    原文作者:云中客_Android
    原文地址: https://www.jianshu.com/p/a0f55548fddd
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞