[英]How to get artifactory to update the maven-metadata.xml for a virtual repo?
[英]How to rebuild maven-metadata.xml in Artifactory?
我们正在使用Artifactory 3.9.2
并且必须合并两个存储库的部分(通过复制工件),这些存储库具有相同的( SNAPSHOT
-versioned)工件。 这搞砸了maven-metadata.xml
。 在Nexus中,可以简单地重建此工件的元数据,并让存储库管理器为您排序。 我似乎无法找到关于如何使用Artifactory执行此操作的任何链接/解释。 有人可以告诉我怎么做到这一点?
我不确定UI中是否可以实现这一点,但您可以使用REST API来实现 。 尝试使用curl
发布请求:
curl -v -X POST http://artifactory/artifactory/api/maven/calculateMetadata/my-repository/com/foo/bar
他们决定将其称为“计算元数据”而不是“重建元数据”,这不是非常适合恕我直言。
我们正在使用artifactory 4.4.2
,因为我们使用REST API手动部署war文件的文件中的文件夹中缺少maven-metadata.xml
文件,所以我来到这里。
需要注意的重要一点是,如果没有pom.xml
文件, calculateMetadata
将不会执行任何操作! ( 来源 )
因此,在我们部署了com/company/project/art/1.0/art-1.0.war
,我们需要创建一个“空白” art-1.0.pom
并将其部署到正确的位置。
这是一个空白pom的例子。
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.project</groupId>
<artifactId>art</artifactId>
<version>1.0</version>
<description>POM was created from a script</description>
</project>
现在,我们注意到的第二件事 - 一旦你部署art-1.0.pom
,maven元数据就会被自动计算(至少对于具有默认maven2布局的本地repo)。
因此,我们根本不需要通过REST API调用calculateMetadata
- 无论何时上传pom,它似乎都是自动的。
接受的答案是关于Artifactory REST API解决方案,它确实是正确的解决方案。 但是,由于我的组织中配置了代理,它对我不起作用。 此外,我必须指定基本身份验证详细信息。 所以,发布对我有用的完整命令: -
curl -x http://{proxy_host}:{proxy_port} -kLu {username}:{password} -X POST https://{artifactory-link}/artifactory/api/maven/calculateMetadata/{repository-name}/{location}
这是REST API 的文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.