jfrog artifactory 使用
Artifactory 仓库主要有四种类型,远程仓库、本地仓库、虚拟仓库及分发仓库,分别应用在如下不同的场景。

远程仓库
Artifactory 仓库支持代理公网或内网二进制软件制品仓库(Artifactory, Nexus,Harbor等),按需获取后在本地进行缓存,可大幅度提升构建效率。于代理及缓存公共仓库,不能向此类型的仓库上传私有组件。
本地仓库
Artifactory 本地仓库用来存储本地构建产出的软件制品。本地仓库中的软件制品通常都带有丰富的元数据,并且通过基于角色的访问控制(RBAC)实现资源隔离。用于内部使用,上传的组件不会向外部进行同步。
虚拟仓库
为满足制品管理的多团队协作需求,虚拟仓库通过打包任意数量的远程仓库和本地仓库,暴露唯一的访问入口的方式,将制品提供者和消费者之间的耦合度降到最低,提升协作效率。
分发仓库
分发仓库通过JFrog Bintray SaaS服务满足软件制品公网分发的需求,提供默认的全球CDN加速服务。

用于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报错,不用去理会报错

官方介绍: 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里生成后下载:

生成后点击下载:

打开上面步骤中使用过得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>
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po