从Apache Archiva删除磁盘上的工件

时间:2016-07-26 13:03:25

标签: maven archiva

我已经从archiva中删除了一堆旧版本(2.0.0 - > 2.0.6)的工件,方法是直接从磁盘上的存储库中删除文件(linux托管)。不幸的是,我无法让Archiva重建其工件索引并认识到版本不再存在。

我已经尝试了

  • 在存储库中扫描索引。
  • 存储库中的目录扫描。
  • 弹回Archiva流程。
  • 牺牲我的第一个孩子。
  • 从用户界面中手动删除版本 - >这有效,这就是2.0.0没有出现在列表中的原因

如果我检查磁盘上的目录结构,我可以看到maven-metadata.xml只包含剩余的版本,因此已经正确重建。

这里是文件系统的样子(主机/用户等已消毒):

[13:51] Linux [myuser@myarchivahost:/net/nas/Archiva/repository/myproject-release/com/mycompany/myartifact]> ls -al
total 24
drwx------  5 root root 4096 Jul 25 15:07 .
drwx------ 23 root root 4096 Jul 12 18:15 ..
drwx------  2 root root 4096 Jun 29 15:00 2.0.7
drwx------  2 root root 4096 Jun 29 15:00 2.0.8
drwx------  2 root root 4096 Jul 13 10:00 2.0.9
-rwx------  1 root root  401 Jul 26 13:37 maven-metadata.xml
-rwx------  1 root root   52 Jul 26 13:37 maven-metadata.xml.md5
-rwx------  1 root root   60 Jul 26 13:37 maven-metadata.xml.sha1

这里是maven-metadata.xml的内容

<?xml version="1.0" encoding="UTF-8"?>

<metadata>
  <groupId>com.mycompany</groupId>
  <artifactId>myartifact</artifactId>
  <versioning>
    <latest>2.0.9</latest>
    <release>2.0.9</release>
    <versions>
      <version>2.0.7</version>
      <version>2.0.8</version>
      <version>2.0.9</version>
    </versions>
    <lastUpdated>20160726123734</lastUpdated>
  </versioning>
</metadata>

这是顽固用户界面的截图 enter image description here

REST API类似地被缓存:

http://myarchivahost/restServices/archivaServices/browseService/versionsList/com.mycompany/myartifact

<versionsList>
  <versions>2.0.1</versions>
  <versions>2.0.2</versions>
  <versions>2.0.3</versions>
  <versions>2.0.4</versions>
  <versions>2.0.5</versions>
  <versions>2.0.6</versions>
  <versions>2.0.7</versions>
  <versions>2.0.8</versions>
  <versions>2.0.9</versions>
</versionsList>

1 个答案:

答案 0 :(得分:0)

这不是理想的解决方案,但这是我现在所拥有的全部。

  • 执行清理操作
  • 从磁盘删除所有maven-metadata文件
  • 从磁盘信息重新创建存储库。