查看Maven构件
选择Maven元数据文件(maven-metadata.xml
)或POM文件(pom.xml
),从Artifact Repository Browser中的Tree浏览模式中,为您提供所选项目的详细信息。
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 central http://[host]:[port]/artifactory/ pluginRepositories> central http://[host]:[port]/artifactory/plugins-releasefalse snapshots http://[host]:[port]/artifactory/plugins-snapshot false
使用默认全局存储库
您可以将Maven配置为使用默认全局存储库这样对工件的任何请求都将通过Artifactory, Artifactory将搜索系统中定义的所有本地和远程存储库。
我们建议您通过定义一个专用的虚拟(或本地)存储库对Artifactory进行微调,以搜索更具体的存储库集,并配置Maven以使用该存储库来解析工件。
额外的镜子任何设置
除了覆盖内置的Maven存储库之外,还可以使用镜子任何设置为通过Artifactory将所有请求重定向到Maven存储库,包括那些在插件和第三方依赖项的pom中定义的请求。(虽然它不遵循最佳实践,但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
。
在虚拟Maven存储库上强制身份验证
Artifactory支持默认启用“允许匿名访问”的Maven存储库将不会查询Maven客户端以获取身份验证参数。
如果要强制身份验证,则需要显式地指示Artifactory请求身份验证参数。
在Maven虚拟存储库的新建或编辑存储库对话框,选择力身份验证复选框。
当力身份验证, Artifactory将在尝试访问此存储库之前从Maven客户端请求身份验证参数。
对本地、远程和虚拟存储库强制Maven非抢占式认证
从Artifactory版本7.37.9开始,在Artifactory中实现了增强的Maven身份验证机制,以消除在检查包是否位于本地、远程和虚拟存储库之前执行身份验证的需要。使用新的身份验证机制,当到达Maven-local-three时(需要身份验证),而不是先执行身份验证,然后再进行授权。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 > < /
指定。
匿名访问发行版存储库
如果允许匿名访问您的发行版存储库,则不需要配置身份验证。然而,虽然在技术上是可能的,但这不是一个好的实践,因此是一个不太可能的场景