Artifactory-oos搭建私有Maven仓库

本文详细介绍了如何使用Artifactory搭建私有Maven仓库,包括下载、配置和启动Artifactory,创建本地、远程和虚拟仓库,以及如何通过手动和动态方式部署包。同时,还提供了如何配置项目以使用这些仓库,以及如何解决内网用户访问资源出现的401错误。

Artifactory搭建私有Maven仓库及使用


在涉及到模块化开发过程中,我们想要将公开或公用组件 aar/jar 上传至MavenCenter or JCenter 仓库中心( 将Android项目开源到JCenter两种方式),以便于持续集成。但是对于有些组件我们不想对外公开这时候就需要我们搭建一个私有仓库了(对公司内部提供使用,仅内网用户可访问)。

JFroge的Artifactory 是一款Maven仓库服务端软件,可以用来在内网搭建maven仓库,供公司内部公共库的上传和发布,以提供公共代码使用的便利性。

1.下载并解压 Artifactory

开源的Artifactory-oss下载地址
在这里插入图片描述
由此可见 artfactory使用的是自带的tomcat进行搭建服务的,而最新版tomcat依赖jdk 1.8 , 故

  • 配置java环境
  • jdk 需要是 1.8 版本

2. 启动Artifactory配置

进入bin目录下,可以发现以下内容 :

  • windows 下 可以通过 .bat.exe进行操作
  • linuxmacOS可以通过.sh文件操作
    在这里插入图片描述

通过两种方式可以进行使用 artifactory :

  • 安装方式 及 installServiceuninstallService
  • 非安装方式 :直接使用命令 artifactory.sshartifactory.bat

我这里仅仅使用的是非安装方式进行实现。进入bin目录,执行下面命令(macOS),windows双击artifactory.bat

$./artifactory.sh

验证运行是否成功浏览器访问:浏览器访问:http://localhost:8081/artifactory/ 如果没问题则会出出现登陆页面(默认账户为:admin/password

登陆后会让你重置密码和一些配置(在配置CREATE REPOSITORIES仓库类型时候我们可选择gralde即可)
如果选择gradle的话,会生成下面4个Repository
img
其他可选择跳过,默认首页没有任何项目

3. 创建私有仓库

初衷

Android Studio 编译速度慢,一般来说,原因有下面几个。

  • Gradle下载慢
  • 依赖库下载慢
  • 依赖库使用"+"(使用最新的),每次都需要去查找新的(尽量不适用这种方式)

这里,大部分的库,我们可以通过阿里云代理仓库。

但是,如果有我们自己的私有库或者插件的话。这个时候,我们就需要搭建我们自己的私有仓库,让私有仓库代理阿里云的公共仓库。这样,既保证了我们私有库的安全性,又让我们的依赖库也享受到了阿里云代理仓库的便利。

使用Artifactory搭建好我们的私有仓库后,然后我们通过Artifactory提供的LocalRemote以及Virtual来创建不同的仓库。

创建之前,先了解一下LocalRemoteVirtual各自仓库的区别

  • Local:本地仓库。一般用于部署私有库以及自定义Gradle插件(上传的组件不会向外部进行同步)。
  • Remote:远程仓库。用于代理及缓存公共仓库,不能向此类型的仓库上传私有组件。
  • Virtual:虚拟仓库。不是真实在存储上的仓库,可以将多个本地或远程仓库合并到一起。

接下来我们针对上述三种类型仓库逐个进行实践

3.1 New Local Repository(新建本地仓库)

本地仓库,用于动态部署一些我们开发的库(例如Android aar,jar)或者手动上传部署一些Gradle包,或者自己写的Gradle插件等等。

  • 创建本地仓库

    • 点击Artifactory右上角—>选择New Local Repositories

    • 选择Package类型(例如:Maven、Gradle等),填写Repository key(例如:android_local),点击Save & Finish,到这里就创建了一个本地的Maven仓库。
      在这里插入图片描述

    • 然后,我们在Local Repositories下面就看到了,我们创建的本地仓库(android_local)

      仓库创建完成,接下来通过手动部署和动态部署我们包或者库

手动部署包

以android的gradle包为例,将我们下载的Gradle包手动部署到这个本地仓库。

  • 点击Artifactory左侧栏目切换到Application选项卡,选择Artifactory—>artifacts下的android_local 然后点击右上角Deploy部署

  • 选择部署文件(可选单个文件部署和多个文件部署),我们使用Single单个文件部署,选择我们事先下载好的gradle.zip包上传
    在这里插入图片描述

  • 上传成功后,返回仓库列表,就看到了这个手动部署Gradle的zip包

    注意:这里,有个细节需要关注一下。仓库默认上传文件大小是100M,我们需要改大一些,不然,上传会失败
    点击右上角账号,选择 Edit Profile—>Artifactory—>General—>Settings—>File Upload Max Size (MB) 重置上传文件的大小限制,我们改成400M,点击Save。如下图,修改完后,再上传我们的Gradle的zip就没有问题了。

  • 到这里,我们通过手动部署的方式,将gradle包部署到了我们的私有仓库的本地仓库中。使用方式为Android项目根目录下gradle—>wrapper—>gradle-wrapper.properties文件中修改系统默认的distributionUrl为我们私有Maven本地仓库中的Gradle路径

    #Wed Jul 01 15:18:06 CST 2020
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    
    #distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
    #将上面Gradle插件下载路径替换为下面我们私有的Maven上本地仓库中的路径  
    distributionUrl=http\://xxx.xxx.xxx.xxx:xxxx/artifactory/android_local/gradle-5.2.1-all.zip
    
动态部署包

上面我们通过手动部署的方式,在本地仓库部署了gradle包。接下来我们通过动态部署的方式,将我们自己开发的Android .aar包部署到该私有Maven仓库内的本地仓库中。

  • 创建一个Android Module(libpay),配置该库所在项目的根build.gradle,添加jfrog的classpath

    dependencies {
         
         
            classpath 'com.android.tools.build:gradle:3.4.1'
            // 配置 classpath 使用 4.+ 版本
            classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
        }
    
  • 配置该Module的build.gradle

    • 添加artifactorymaven-publish插件

      apply plugin: 'com.jfrog.artifactory'
      apply plugin: 'maven-publish'
      
    • 配置publishingartifactory

      //私有Maven仓库地址
      def MAVEN_LOCAL_PATH = 'http://xxx.xxx.xxx.xxx:xxxx/artifactory'
      
      //发布组件的artifactId(这里同时发布debug和release版)
      def ARTIFACT_ID_DEBUG = 'libpay-debug'
      def ARTIFACT_ID_RELEASE = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值