让我们考虑以下场景
foo-common
是构建 20mb jar 的项目 (foo-common-0.0.1.jar
)foo-app1
是一个将foo-common-0.0.1.jar
嵌入zip
Artifact 的应用程序foo-app2
是一个将foo-common-0.0.1.jar
嵌入war
Artifact 的应用程序foo-common
、foo-app1
和foo-app2
均已部署到 Artifactfoo-app1
和foo-app2
由不同的团队管理并位于不同的源存储库中
这会导致 Artifact 上出现磁盘空间问题,因为所有 3 个 Artifact 都包含 20mb 的 foo-common-0.0.1.jar
,最终占用了 60mb 的磁盘空间。
有更聪明的解决方案吗?有没有一种方法可以让 foo-common
、foo-app1
和 foo-app2
都可以存在于 Artifact 中,而无需复制 foo-common -0.0.1.jar
?我的想法是让 Artifact 变得更智能,并检查上传的 wars 和 zip 中是否存在 Artifact 中已经存在的嵌入式 jar。可能通过比较文件哈希值或利用 Maven 依赖信息。
最佳答案
不,目前没有“更智能的解决方案”。
Artifactory 不是一个 diff 引擎,无论是二进制的还是其他的;它是一个 Artifact 存储库。它不会“按需”重建或构造这些 Artifact ,它只是存储 Artifact 。
关于java - Artifactory:我可以避免 War 和 Zip Artifact 的嵌入冗余吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32179265/