Java怎么搭建自己的仓库_快速搭建本地代码仓库并实现Gradle脚本发布

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

材料

JFrog提供免费并开源的Artifactory环境包,点击下载,官网:https://www.jfrog.com

系统环境:Linux

步骤

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

db4395c0ce72

dir-list

保证系统环境当前已经配置了Java环境,并版本1.8或以上

Linux直接命令行启动“artifactory.sh”

Linux下当启动成功后,命令行会出现如下提示:

db4395c0ce72

linux-started

至此就成功了!简单吧,基本没有任何技术问题

实现Gradle脚本发布

首先加载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" // 发布者密码

}

}

}

然后在要发布的library工程中的build.gradle文件中的最后一行编写引入代码

//local-maven.gradle 根据自己新建的文件路径与文件名为准,当前表示引入与当前文件同一目录下的 local-maven.gradle 文件

apply from: 'local-maven.gradle'

执行脚本代码

命令行执行: gradlew assembleRelease artifactoryPublish

或 在Android Studio中的Gradle projects依次执行assembleRelease与artifactoryPublish

检查发布成功与否

项目中引用

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

db4395c0ce72

引入成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值