jfrog artifactory 使用
    
    
    Artifactory 仓库类型
   
 Artifactory 仓库主要有四种类型,远程仓库、本地仓库、虚拟仓库及分发仓库,分别应用在如下不同的场景。
     
   
    
     远程仓库
    
    
    Artifactory 仓库支持代理公网或内网二进制软件制品仓库(Artifactory, Nexus,Harbor等),按需获取后在本地进行缓存,可大幅度提升构建效率。于代理及缓存公共仓库,不能向此类型的仓库上传私有组件。
   
    
     本地仓库
    
    
    Artifactory 本地仓库用来存储本地构建产出的软件制品。本地仓库中的软件制品通常都带有丰富的元数据,并且通过基于角色的访问控制(RBAC)实现资源隔离。用于内部使用,上传的组件不会向外部进行同步。
   
    
     虚拟仓库
    
    
    为满足制品管理的多团队协作需求,虚拟仓库通过打包任意数量的远程仓库和本地仓库,暴露唯一的访问入口的方式,将制品提供者和消费者之间的耦合度降到最低,提升协作效率。
   
    
     分发仓库
    
    
    分发仓库通过JFrog Bintray SaaS服务满足软件制品公网分发的需求,提供默认的全球CDN加速服务。
   
    
    
    修改base url
   
     
   
    
    
    创建本地仓库
   
用于deploy自己的jar包
 选择创建本地库:
     
   
 选择maven类型:
     
   
输入有意义的库名:
     
   
上传包:x-pack-sql-7.8.0.jar
     
   
    
     注意: 如果提示你 jar 过大是因为 jfrog 默认最大只能上传 100m 的资源,可以去设置里进行更改,然后再重新上传。
    
   
     
   
查看:
     
   
访问一下包:
    
    
    一般情况下,
    
     需要根据环境创建local库
    
    ,这里创建两个:一样的建立方式, 一个release库, 一个snapshot库
   
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OVjGPqQU-1658780314824)(好好学习.assets/image-20220726041401393.png)]
两个本地库如下:
     
   
    
    
    创建远程仓库
   
     
   
    
     Select Package Type
    
    选择
    
     Maven
    
    ;
    
     Repository Key
    
    输入一个有意义的名字
   
     
   
    
    
    配置一下basic即可:
   
     
   
    默认的远程仓库是
    
     https://repo1.maven.org/maven2/
    
也可以改成阿里仓库地址的https://maven.aliyun.com/repository/public 等
    然后点击右下角的
    
     Create Remote Repository
    
    即可
   
     其中:
    
     https://repo1.maven.org/maven2/
    
    ,test能成功
   
    
    
     阿里仓库会test报错,不用去理会报错
    
    
     
   
    
    
    阿里云Maven仓库
   
    
     官方介绍:
    
    
     https://developer.aliyun.com/mvn/guide
    
    
     阿里云Maven中央仓库为
    
     阿里云云效
    
    提供的公共代理仓库,帮助研发人员提高研发生产效率,使用阿里云Maven中央仓库作为下载源,速度更快更稳定。
   
    
    
     阿里云云效
    
    是企业级一站式 DevOps 平台,覆盖产品从需求到运营的研发全生命周期,其中云效也提供了免费、可靠的Maven私有仓库
    
     Packages
    
    和代码管理仓库
    
     Codeup
    
    ,欢迎您体验使用。
   
     云效制品仓库
    
     Packages
    
    致力于帮助开发者统一管理各种开发语言在开发、构建过程中的依赖,构建成果(二进制制品)以及交付过程关键信息的重要组件。
   
     云效代码管理
    
     Codeup
    
    是阿里云出品的一款企业级代码管理平台,提供代码托管、代码评审、代码扫描、代码度量等功能,不限人数、超大容量且免费使用,全方位保护代码资产,帮助团队实现安全、稳定、高效的研发管理。
   
     
   
阿里云maven 配置指南:
     打开 maven 的配置文件( windows 机器一般在 maven 安装目录的
    
     conf/settings.xml
    
    ),在标签中添加 mirror 子节点:
   
<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>
 如果想使用其它代理仓库,可在节点中加入对应的仓库使用地址。以使用 spring 代理仓为例:
<repository>
  <id>spring</id>
  <url>https://maven.aliyun.com/repository/spring</url>
  <releases>
    <enabled>true</enabled>
  </releases>
  <snapshots>
    <enabled>true</enabled>
  </snapshots>
</repository>
     在你的
    
     pom.xml
    
    文件节点中加入你要引用的文件信息:
   
<dependency>
  <groupId>[GROUP_ID]</groupId>
  <artifactId>[ARTIFACT_ID]</artifactId>
  <version>[VERSION]</version>
</dependency>
 执行拉取命令:
mvn install
    
    
    创建虚拟仓库
   
 创建好本地仓库和远程仓库,如果项目中要引用仓库的话需要同时依赖多个仓库,需要再创建一个虚拟仓库,统一管理本地和远程仓库,项目中只需要引用虚拟仓库即可。
     
   
     
   
这样设置之后我们开发的之后就直接设置maven的仓库地址为虚拟仓库fazi_virtual_repo,找不到的jar包会从远程仓库中找,同时我们发布的jar包会直接发布到artifactory的本地仓库libs-release-local中.
    一般情况下,
    
     与local库一致,也是需要创建相应的两个virtual库:
    
   
一样的建立方式, 一个代理release, 一个代理snapshot, 注意排序和选择默认的deploy库, 这样在maven项目中deploy jar包时, jfrog才知道要部署要哪个库(否则就要在maven setting和distributionManagement中指定部署的私库)
     
   
同样的创建过程:注意不同的virtual库选择不同的local库
     
   
     
   
    
    
    创建用户和组
   
用户:
     
   
组:
     
   
     
   
    
    
    配置仓库权限
   
 建议按组配置
     
   
这里配置仓库,不能选择virtual库,只能是远程库和本地库。
     
   
分配组:
     
   
    
    
    项目中使用仓库
   
在以下页面找到仓库的地址
     
   
创建setting.xml:
     
   
 简单的修改一下生成的setting.xml文件,修改用户名和密码之后就可以用生成的settign 文件覆盖maven的conf文件夹下面的设置文件.
 注意增加本地库目录配置:
C:/Program Files/apache-maven-3.8.4/m22/repository
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	
  <localRepository>C:/Program Files/apache-maven-3.8.4/m22/repository</localRepository> 
  
  <servers>
    <server>
      <username>${security.getCurrentUsername()}</username>
      <password>${security.getEscapedEncryptedPassword()!"*** Insert encrypted password here ***"}</password>
      <id>central</id>
    </server>
    <server>
      <username>${security.getCurrentUsername()}</username>
      <password>${security.getEscapedEncryptedPassword()!"*** Insert encrypted password here ***"}</password>
      <id>snapshots</id>
    </server>
  </servers>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>fazi_release_virtual</name>
          <url>http://lsyk04:8081/artifactory/fazi_release_virtual</url>
        </repository>
        <repository>
          <snapshots />
          <id>snapshots</id>
          <name>fazi_snapshot_virtual</name>
          <url>http://lsyk04:8081/artifactory/fazi_snapshot_virtual</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>fazi_release_virtual</name>
          <url>http://lsyk04:8081/artifactory/fazi_release_virtual</url>
        </pluginRepository>
        <pluginRepository>
          <snapshots />
          <id>snapshots</id>
          <name>fazi_snapshot_virtual</name>
          <url>http://lsyk04:8081/artifactory/fazi_snapshot_virtual</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
</settings>
     完成上述设置之后我们就可以找一个自己的maven工程,然后再工程目录下使用
    
     mvn clean package
    
    我们就能发现mvn会从artifactory 服务器中拉取依赖。
   
上述的密码是加密的,在jfrog artifactory 里会加密成功:
- 
在user 里可以   
- 
在set me up里生成后下载:   生成后点击下载:   
    
    
    pom文件设置
   
     打开上面步骤中使用过得Set Me Up 界面,选择Deploy ,我们只需要在自己的项目pom文件中加入下面的设置之后,我们就可以直接使用
    
     mvn deploy
    
    想打包好的jar文件发布到artifactory的本地仓库中
   
     
   
在项目的 pom.xml 文件添加如下配置
<distributionManagement>
    <repository>
      <id>central</id>
      <name>lsyk04-releases</name>
      <url>http://lsyk04:8081/artifactory/fazi_release_virtual</url>
    </repository>
    <snapshotRepository>
      <id>snapshots</id>
      <name>lsyk04-snapshots</name>
      <url>http://lsyk04:8081/artifactory/fazi_snapshot_virtual</url>
    </snapshotRepository>
  </distributionManagement>
##### 以上经过了测试,id要和setting里的id一致
##### 以下没有测试
<repositories>
      <repository>
          <id>jfrog</id>
          <name>jfrog</name>
          <!-- 注意:这里是 jfrog 服务上的仓库地址 -->
          <url>http://lsyk04:8081/artifactory/fazi_release_virtual/</url>
          <!-- Release版本则代表稳定的版本 -->
          <releases>
              <enabled>true</enabled>
          </releases>
          <!-- Snapshot版本代表不稳定、尚处于开发中的版本,默认关闭,需要手动启动 -->
          <snapshots>
              <enabled>true</enabled>
          </snapshots>
      </repository>
  </repositories>
 
  <!-- 指定插件仓库 -->
  <pluginRepositories>
      <pluginRepository>
          <id>jfrog</id>
          <name>jfrog</name>
          <url>http://lsyk04:8081/artifactory/fazi_release_virtual//</url>
          <releases>
              <enabled>true</enabled>
          </releases>
          <snapshots>
              <enabled>true</enabled>
          </snapshots>
      </pluginRepository>
  </pluginRepositories>
 
