云客户?
开始免费>
升级MyJFrog >
什么是新的云>





概述

作为一个Maven存储库,Artifactory既是构建所需构件的来源,也是部署在构建过程中生成的构件的目标。Maven是使用settings.xml文件位于Maven主目录下(通常,这将是/user.home / .m2 / settings.xml.有关配置Maven的更多信息,请参阅Apache Maven项目设置参考

该文件中的默认值将Maven配置为使用一组用于解析工件的默认存储库和一组默认插件。

要使用Artifactory,你需要配置Maven来执行以下两个步骤:

  1. 通过工件解析工件
  2. 通过工件部署工件

一旦配置了Maven构建,Artifactory还提供了与常用CI服务器的紧密集成(例如詹金斯TeamCity或者一个竹子),通过一组插件,您可以免费安装和使用。


查看Maven工件

选择Maven元数据文件(maven-metadata.xml)或POM文件(pom.xml),它为您提供了关于所选项目的详细信息。

Maven元数据视图

Maven XML视图

POM视图

Maven POM视图



通过工件解析工件

要配置Maven以通过Artifactory解析工件,您需要修改settings.xml。您可以自动生成,也可以手动修改。

自动生成设置

为了方便您配置Maven来使用Artifactory, Artifactory可以自动生成一个settings.xml文件,您可以保存在您的Maven主目录下。

生成的定义settings.xml文件覆盖默认值中央而且快照Maven存储库。

“自动生成设置”只允许您进行配置虚拟Maven存储库.虽然这是一种最佳实践和推荐的方法,但您可以更改任何存储库通过手动编辑settings.xml文件。

创建Maven存储库之后,转到应用程序|Artifactory|工件,选择Maven存储库并单击陷害我。

在“设置我”对话框中单击生成Maven设置


现在可以指定希望为Maven配置的存储库。


释放
用于解析版本的存储库
快照
用于解析快照的存储库
插件版本
用于解析插件版本的存储库
插件快照
用来解析插件快照的存储库
镜子任何

设置后,您可以选择一个应该镜像任何其他存储库的存储库。详情请参考额外的镜子任何设置

在为Maven配置了设置之后,单击生成设置生成和保存settings.xml文件。

为用户提供动态设置

您可以为用户部署和提供动态设置模板。

下载后,设置将根据您自己的逻辑生成,并自动包含用户身份验证信息。

有关更多详细信息,请参阅过滤资源下的配置构建工具设置。2022世界杯阿根廷预选赛赛程

手动重写内置存储库

要覆盖内置的中央而且快照Maven仓库,您需要确保正确配置了Artifactory,这样就不会将任何请求直接发送给它们。

使用自动生成的文件作为模板

可以使用自动生成的settings.xml在定义用于解析工件的存储库时,文件作为示例。

为此,需要将以下代码插入父POM或settings.xml(在活跃档案下):

  central http://[host]:[port]/artifactory/lib -release  false    snapshots http://[host]:[port]/artifactory/lib -snapshot  false      central false   snapshots http://[host]:[port]/artifactory/plugins-snapshot  false   

使用默认全局存储库

您可以配置Maven来运行默认全局存储库因此,对工件的任何请求都将通过Artifactory,后者将搜索系统中定义的所有本地和远程存储库。

我们建议您通过定义一个专用的虚拟(或本地)存储库来对Artifactory进行微调,以搜索一组更特定的存储库,并配置Maven来使用它来解析工件。

额外的镜子任何设置

除了重写内置的Maven存储库之外,您还可以使用镜子任何设置为通过Artifactory将所有请求重定向到Maven存储库,包括那些在插件和第三方依赖的pom中定义的请求。(虽然它不遵守最佳实践,但pom直接引用Maven存储库的情况并不少见)。这确保了此类pom不会直接向Maven引入意外请求。

你可以检查一下镜子任何Maven的设置生成您的settings.xml文件,也可以手动插入以下内容:

  artifactory * http://[host]:[port]/artifactory/[virtual repository]  artifactory  

使用“Mirror Any”时要注意

虽然这是一种方便的方式,以确保Maven只通过Artifactory访问存储库T定义了一个粗略的代理规则,它不区分版本和快照,而是依赖于单个指定的存储库来完成此解析。

用镜子

关于使用镜子的更多信息请参考存储库使用镜像Apache Maven文档中。

配置身份验证

Artifactory需要在三种情况下进行用户身份验证:

  • 通过取消选中全局变量,已禁用匿名访问允许匿名访问设置。
  • 您希望将对存储库的访问限制在有限的一组用户
  • 部署构建时(虽然理论上是可能的,但允许对部署存储库进行匿名访问的情况并不多见)

在Maven中配置身份验证< server >元素settings.xml文件。

文件中指定的每个元素必须有一个对应的元素,该元素与指定用户名和密码的相匹配。

下面的示例代码片段强调了<库>元素id =中央有一个对应的< server >元素id =中央。

类似地,<库>元素id =快照有一个对应的< server >元素id =快照

对于需要身份验证的元素也是如此。

在这两种情况下,用户名都是管理密码是加密的。

...

<服务器>

< server >

<标识>中央< / id >
<用户名>管理> < /用户名
<密码> \ {DESede \} kFposSPUydYZf89Sy / o4wA = = > < /密码

> < /服务器

< server >

<标识>快照< / id >
<用户名>管理> < /用户名
<密码> \ {DESede \} kFposSPUydYZf89Sy / o4wA = = > < /密码

> < /服务器

> < /服务器

<文件>

<文件>

> <存储库

<库>

<标识>中央< / id >
< >快照
<启用>假启用< / >
< / >快照
<名称> libs-release < /名称>
< url >http://localhost:8081/artifactory/libs-release< / url >

> < /库
<库>

<标识>快照< / id >
< / >快照
<名称> libs-snapshot < /名称>
< url >http://localhost:8081/artifactory/libs-snapshot< / url >

> < /库

> < /存储库

< / profile >

< /资料>

...

为了安全地访问Maven存储库,Artifactory对密码进行加密

为了避免必须使用明文密码,Artifactory加密的密码在生成的settings.xml文件中。例如,在上面的示例代码片段中,我们可以看到admin用户名是明文指定的,但密码是加密的:

<用户名>管理> < /用户名
<密码> \ {DESede \} kFposSPUydYZf89Sy / o4wA = = > < /密码

同步具有相同URL的存储库的身份验证详细信息

如果您有使用的存储库定义(用于部署或下载)相同的URL, Maven获取遇到的第一个存储库的身份验证细节(来自相应的服务器定义),并在运行构建的整个生命周期中对具有相同URL的所有存储库使用它。如果对各自的存储库使用不同的身份验证细节,这可能会导致身份验证失败(在下载或部署时产生401个错误)。这是Maven固有的行为,只能通过对具有相同URL的所有存储库定义使用相同的身份验证细节来解决settings.xml

强制对虚拟Maven存储库进行身份验证

Artifactory支持Maven存储库,并在默认情况下启用了允许匿名访问不会向Maven客户端查询身份验证参数。
如果您想强制身份验证,您需要显式地指示Artifactory请求身份验证参数。

新建或编辑Maven虚拟存储库对话框,选择力身份验证复选框。


力身份验证选中时,Artifactory将在尝试访问此存储库之前从Maven客户端请求身份验证参数。

强制Maven对本地、远程和虚拟存储库进行非抢占式身份验证

从Artifactory 7.37.9版本开始,在Artifactory中实现了一种增强的Maven认证机制,以消除在检查包是否位于本地、远程和虚拟存储库之前执行认证的需要。使用新的身份验证机制,当到达maven -local- 3时(需要身份验证),而不是首先执行身份验证,然后再进行授权。Artifactory将检查请求的项是否位于存储库中,如果请求的包确实存在,它将继续执行身份验证和授权。如果没有,将触发404错误消息。该特性默认为禁用。

启用非抢占式认证,需要添加artifactory.maven.authentication.nonPreemptive参数artifactory.system.properties文件。

需要重新启动

添加此标志后,需要重新启动系统。



通过工件部署工件

建立分销管理

要通过Artifactory部署构建构件,您必须添加一个带有您想要部署构件的目标本地存储库URL的部署元素。

为了使这更容易,Artifactory显示了一个代码片段,您可以使用它作为您的部署元素。我n的构件库浏览器,点击然后选择要部署到的存储库并单击陷害我。代码片段显示在部署。


请记住,您不能将构建构件部署到远程,因此不应该在部署元素中使用它们。

在Maven设置中设置安全性

通过Artifactory部署您的Maven构建,您必须确保任何<库>元素具有相应的< server >元素settings.xml文件的有效用户名和密码,如配置身份验证以上。对于上面显示的示例,Maven客户机期望找到一个< server >元素settings.xml<标识> artifactory id > < /指定。

对分发存储库的匿名访问

如果允许对发布存储库进行匿名访问,则不需要配置身份验证。然而,虽然这在技术上是可能的,但这不是一个好的实践,因此是一个不太可能的场景


观看视频

版权所有©2022 JFrog有限公司