Android 移动 前端 Python Android Java

快速搭建本地代码仓库并实现Gradle脚本发布

2016-04-21  本文已影响2431人  QiuJay

做为一名有经验的安卓开发人员,相信大家都知道Maven仓库与Jcenter仓库,这是目前全球最常用的两个,其中Jcenter是目前最大的一个Java与Android开源软件构建仓库,而且我们经常用的Android Studio就是默认支持Jcenter

材料

步骤

  1. 解压下载下来的zip压缩包,目录结构如下[version | 4.7.4]:


    dir-list
  2. 保证系统环境当前已经配置了Java环境,并版本1.8或以上
  3. Linux直接命令行启动“artifactory.sh”
  4. Linux下当启动成功后,命令行会出现如下提示:


    linux-started
  5. 测试访问:http://localhost:8081/artifactory,账号:admin;密码:password
    home
  6. 至此就成功了!简单吧,基本没有任何技术问题

实现Gradle脚本发布

dependencies {
        classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.1.1'
}
apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

def artifactVersion = '1.0-SNAPSHOT'//发布的版本

publishing {
    publications {
        aar(MavenPublication) {
            groupId = 'lsw.widget'
            artifactId project.name
            version = artifactVersion
            artifact "${project.buildDir}/outputs/aar/${project.name}-release.aar"
        }
    }
}
artifactory {
    contextUrl = "http://localhost:8081/artifactory"//本地仓库地址
    publish {
        repository {
            /**
            repoKey:指定发布到的仓库名称
            */
            //这里判断了当前发布的版本是不是‘快照’版本;
            //其中'libs-snapshot-local' : 'libs-release-local'是两个仓库名称
            repoKey = artifactVersion.endsWith('SNAPSHOT') ?
                        'libs-snapshot-local' : 'libs-release-local'
            username = "admin" // 发布者用户名
            password = "password" // 发布者密码
            maven = true
        }
        defaults {
            publishArtifacts = true
            //这里的'aar'对应publishing任务中的'aar',任务名称可自定义
            publications('aar')
            publishPom = true //Publish generated POM files to Artifactory (true by default)
            publishIvy = false //Publish generated Ivy descriptor files to Artifactory (true by default)
        }
    }
    resolve {
        repository {
            repoKey = 'jcenter'
            username = "admin" // 发布者用户名
            password = "password" // 发布者密码
        }
    }
}
//local-maven.gradle 根据自己新建的文件路径与文件名为准,当前表示引入与当前文件同一目录下的 local-maven.gradle 文件
apply from: 'local-maven.gradle'

命令行执行: gradlew assembleRelease artifactoryPublish
或 在Android Studio中的Gradle projects依次执行assembleRelease与artifactoryPublish

检查发布成功与否

打开 http://localhost:8081/artifactory 登录管理后台,如图:

此处输入图片的描述

项目中引用

 repositories {
    //release仓库Uri    
    maven { url 'http://localhost:8081/artifactory/libs-release-local/' }
    //snapshot仓库Uri
    maven { url 'http://localhost:8081/artifactory/libs-snapshot-local' }
}

dependencies {
    compile 'com.jay:widget:1.0-SNAPSHOT'
}

科普下Module ID的组成

什么?Module ID是什么玩意?“ com.android.support:appcompat-v7:23.3.0 ”,这个见过吧,就是这个东西,那么这个module id由哪些组成,就拿这个v7兼容包举例:

groupId:    com.android.support
artifactId: appcompat-v7
version:    23.3.0
引入成功

完整local-maven.gradle文件见github地址:https://github.com/JaySong/JFrog-Artifactory

上一篇下一篇

猜你喜欢

热点阅读