从 Apache Archiva 删除磁盘上的工件
Deleting artifacts on disk from Apache Archiva
我通过直接从磁盘上的存储库(linux 托管)删除文件,从存档中删除了一堆旧版本(2.0.0 -> 2.0.6)的工件。不幸的是,我无法让 Archiva 重建其工件索引并识别出这些版本已不存在。
我试过了
- 存储库上的索引扫描。
- 存储库目录扫描。
- 弹回 Archiva 进程。
- 牺牲我的第一个孩子child。
- 从 UI 中手动删除版本 -> 这行得通,这就是为什么 2.0.0 没有出现在列表中的原因
如果我检查磁盘上的目录结构,我可以看到 maven-metadata.xml 只包含保留的版本,因此已正确重建。
这是文件系统的样子(hosts/users 等已清理):
[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>
下面是顽固的截图UI
REST API 同样被缓存:
<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>
这不是理想的解决方案,但这是我目前的全部。
- 执行清理操作
- 从磁盘中删除所有 maven 元数据文件
- 从磁盘信息重新创建存储库。
我通过直接从磁盘上的存储库(linux 托管)删除文件,从存档中删除了一堆旧版本(2.0.0 -> 2.0.6)的工件。不幸的是,我无法让 Archiva 重建其工件索引并识别出这些版本已不存在。
我试过了
- 存储库上的索引扫描。
- 存储库目录扫描。
- 弹回 Archiva 进程。
- 牺牲我的第一个孩子child。
- 从 UI 中手动删除版本 -> 这行得通,这就是为什么 2.0.0 没有出现在列表中的原因
如果我检查磁盘上的目录结构,我可以看到 maven-metadata.xml 只包含保留的版本,因此已正确重建。
这是文件系统的样子(hosts/users 等已清理):
[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>
下面是顽固的截图UI
REST API 同样被缓存:
<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>
这不是理想的解决方案,但这是我目前的全部。
- 执行清理操作
- 从磁盘中删除所有 maven 元数据文件
- 从磁盘信息重新创建存储库。