java - Artifactory:我可以避免 War 和 Zip Artifact 的嵌入冗余吗?

标签 java maven ear artifactory

让我们考虑以下场景

  • 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-commonfoo-app1foo-app2 均已部署到 Artifact
  • foo-app1foo-app2 由不同的团队管理并位于不同的源存储库中

这会导致 Artifact 上出现磁盘空间问题,因为所有 3 个 Artifact 都包含 20mb 的 foo-common-0.0.1.jar,最终占用了 60mb 的磁盘空间。

有更聪明的解决方案吗?有没有一种方法可以让 foo-commonfoo-app1foo-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/

相关文章:

maven-2 - 如何让 Maven 将 war 常见的所有 jar 放在同一个 EAR 到 EAR 根目录中?

java - 如何从 maven-archetype-webapp 工件生成 Ear 文件?

java - 如何将 antdirset 与 Ear 任务一起使用?

java - 构造函数必须在方法返回之前调用 super() 或 this()

java - DatabaseException - 无法将 java.lang.String 类型的对象转换为 com.appmaster.akash.messageplus.Results 类型

java - 方法调用顺序

java - Maven:打包复制文件夹后复制粘贴WEB-INF到根目录

java - 使用pom编译src.jar和.jar

java - 如何从收到的电子邮件中提取信息以自动执行 list ?

java - 从项目中删除 Nexus 依赖项