簡體   English   中英

如何在Artifactory中重建maven-metadata.xml?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM