Jfrog的Artifactory是一款Maven仓库服务端软件,可以用来在内网搭建maven仓库,供公司内部公共库的上传和发布,以提高公共代码使用的便利性。
1 Artifactory开源版本在Linux下的安装与启动
安装相对比较简单,从Jfrog网站下载当前最新版本的rpm包到本地,当前最新版是4.7.6,执行rpm -ivh命令进行安装。默认安装到/opt/jfrog目录下。
安装包里集成了tomcat,所以不需要再单独安装。但tomcat依赖于java1.8,所以还需要安装jre1.8。这一项就不多说了,去这个页面下载并安装。
成功安装后,切换到安装目录/opt/jfrog/artifactory/bin目录下,执行artifactoryctl start,默认会在8081端口开启服务。这时从浏览器里访问即可。初始用户为admin:password,对于管理员,在安装后需要先修改登录密码。
2 Artifactory的配置
详细的使用文档请见这里
首先介绍下仓库的分类,在Art中,repo有三种。本地Local型,远程Remote型,以及虚拟型。
本地私有仓库:用于内部使用,上传的组件不会向外部进行同步。
远程仓库:用于代理及缓存公共仓库,不能向此类型的仓库上传私有组件。
虚拟仓库:不是真实在存储上的仓库,它用于组织本地仓库和远程仓库。
了解了这点,就可以在admin -> repository 下相应的子类型中,创建新的仓库。
3 仓库的使用
Art安装好之后,预置了一些仓库。例如远程仓库默认配置了jcenter。因此在启动之后,就可以把原来引用公网仓库的组件,改为引用内网仓库了。
如果需要将一些私有代码打包到仓库,就需要使用仓库。创建好内部仓库后,可以将下面的gradle脚本加入到build.gradle中,然后执行uploadArchive的gradle任务,即可将代码编译打包并上传到仓库。
apply plugin: 'maven-publish'
apply plugin: 'maven'
def MAVEN_LOCAL_PATH ='http://192.168.1.2:8081/artifactory/lib-local'
def ARTIFACT_ID = 'fastjson'
def VERSION_NAME = '0.1.0'
def GROUP_ID = 'com.example.groupname'
uploadArchives {
repositories {
mavenDeployer {
repository(url:MAVEN_LOCAL_PATH ){
authentication(userName: "user", password:"pass")
}
pom.project {
groupId GROUP_ID
artifactId ARTIFACT_ID
version VERSION_NAME
packaging 'aar'
}
}
}
}