5.使用Artifactory。x ?
JFrog Artifactoryx用户指南
有问题吗?想要报告问题?联系JFrog支持
概述
作为Maven存储库,Artifactory既是构建所需工件的源,也是部署构建过程中生成的工件的目标。Maven是使用settings.xml
位于Maven主目录下的文件(通常,这将是/user.home / .m2 / settings.xml
).有关配置Maven的更多信息,请参阅Apache Maven项目设置参考.
该文件中的默认值将Maven配置为使用一组用于解析工件的默认存储库和一组默认插件。
要使用Artifactory,您需要配置Maven以执行以下两个步骤:
配置好Maven构建后,Artifactory还提供了与常用CI服务器(例如詹金斯,TeamCity或者一个竹子),你可以自由安装和使用。
查看Maven工件
如果您在Tree Browser中选择Maven元数据文件(Maven -metadata.xml)或POM文件(POM .xml), Artifactory将提供相应的选项卡,允许您查看所选项目的详细信息。
Maven元数据视图
POM视图
通过Artifactory解析工件
要配置Maven以通过Artifactory解析工件,您需要修改settings.xml。
您可以自动生成,也可以手动修改。
自动生成设置
为了方便配置Maven以使用Artifactory, Artifactory可以自动生成一个settings.xml
可以保存在Maven主目录下的文件。
所生成的定义settings.xml
文件覆盖默认值中央而且快照Maven存储库。
在工件存储库浏览器的工件模块,选择给我介绍。在给我介绍对话框中,设置Maven在工具字段,然后单击“Generate Maven Settings”。现在可以指定要为Maven配置的存储库。
释放 |
要从中解析版本的存储库 |
快照 |
要从中解析快照的存储库 |
插件版本 |
用于解析插件版本的存储库 |
插件快照 |
要从中解析插件快照的存储库 |
镜子任何 |
设置后,可以选择镜像任何其他存储库的存储库。详情请参阅额外的镜子任何设置 |
配置了Maven的设置后,可以单击“Generate settings”来生成并保存settings.xml
文件。
为用户提供动态设置
您可以为用户部署和提供动态设置模板。
下载后,设置将根据您自己的逻辑生成,并可以自动包含用户身份验证信息。
有关详情,请参阅配置构建工具设置下过滤后的资源2022世界杯阿根廷预选赛赛程.
手动覆盖内置存储库
要覆盖内置的中央而且快照对于Maven存储库,您需要确保Artifactory被正确配置,这样就不会直接向它们发送请求。
使用自动生成的文件作为模板
您可以使用自动生成的settings.xml
文件作为示例,定义用于解析工件的存储库。
为此,您需要将以下内容插入到您的父POM或settings.xml
(在活动档案下):
central http://[host]:[port]/artifactory/libs-release false http://[host]:[port]/artifactory/libs-snapshot false central http://[host]:[port]/artifactory/ pluginRepositories -release false snapshots http://[host]:[port]/artifactory/plugins-snapshot false
使用默认全局存储库
可以配置Maven以使用默认全局存储库这样对工件的任何请求都将通过Artifactory,它将搜索系统中定义的所有本地和远程存储库。
我们建议您通过定义一个专用的虚拟(或本地)存储库来优化Artifactory,以搜索一组更特定的存储库,并配置Maven以使用该存储库来解析工件。
额外的镜子任何设置
除了覆盖内置Maven存储库,你可以使用镜子任何设置通过Artifactory将所有请求重定向到Maven存储库,包括在插件和第三方依赖项的POMs中定义的请求。(虽然它不遵循最佳实践,但pom直接引用Maven存储库并不罕见)。这确保了此类pom不会直接引入对Maven的意外请求。
你可以检查一下镜子任何在Maven的设置屏幕时生成settings.xml
文件,或者您可以手动插入以下内容:
artifactory * http://[host]:[port]/artifactory/[虚拟存储库] artifactory name>
使用“镜像任意”时要注意
虽然这是一种方便的方法,可以确保Maven只通过Artifactory访问存储库T定义了一个粗略的代理规则,该规则不区分发布和快照,并依赖于单个指定的存储库来执行此解析。
用镜子
有关使用镜像的更多信息,请参阅为存储库使用镜像在Apache Maven文档中。
配置身份验证
Artifactory在三种情况下需要用户身份验证:
- 匿名访问已通过取消检查全局禁用允许匿名访问设置。
- 您希望将对存储库的访问限制为有限的一组用户
- 部署构建时(虽然理论上是可能的,但不允许匿名访问部署存储库)
在Maven中使用配置身份验证< server >
的元素settings.xml
文件。
文件中指定的每个
下面的示例代码片段强调<库>
元素id =中央
有一个对应的< server >
元素id =中央。
类似地,<库>
元素id =快照
有一个对应的< server >
元素id =快照
.
对于需要身份验证的
在这两种情况下,用户名都是管理
密码是加密的。
Artifactory对密码进行加密,以确保对Maven存储库的安全访问
为了避免使用明文密码,Artifactory加密密码在生成的settings.xml文件中。例如,在上面的示例代码片段中,我们可以看到admin用户名是明文指定的,但密码是加密的:
<用户名>管理> < /用户名
<密码> \ {DESede \} kFposSPUydYZf89Sy / o4wA = = > < /密码
同步具有相同URL的存储库的身份验证详细信息
如果您有存储库定义(用于部署或下载)使用相同的URL, Maven获取遇到的第一个存储库的身份验证详细信息(来自相应的服务器定义),并在具有相同URL的所有存储库的运行构建的生命周期中使用它。如果您为各自的存储库使用不同的身份验证细节,则可能导致身份验证失败(为下载或部署产生401个错误)。这是固有的Maven行为,只能通过对具有相同URL的所有存储库定义使用相同的身份验证细节来解决settings.xml
.
通过Artifactory部署工件
建立分销管理
要通过Artifactory部署构建构件,您必须添加一个部署元素,其中包含您希望将构件部署到的目标本地存储库的URL。
为了简化这一点,Artifactory显示了一个代码片段,您可以将其用作部署元素。我n的工件模块树浏览器选择要部署到的存储库并单击给我介绍。代码片段显示在下面部署。
请记住,您不能将构建构件部署到远程,因此不应该在部署元素中使用它们。
在Maven设置中设置安全性
当通过Artifactory部署您的Maven构建,您必须确保任何<库>
元素的分布设置中有相应的< server >
元素中的settings.xml
文件,使用有效的用户名和密码,如配置身份验证以上。对于上面显示的示例,Maven客户机希望找到一个< server >
元素中的settings.xml
与<标识> artifactory id > < /
指定。
匿名访问分发存储库
如果允许匿名访问您的分发存储库,那么就不需要配置身份验证。然而,虽然在技术上是可能的,但这不是一个好的实践,因此不太可能出现这种情况