java - Maven:依赖管理的优点

标签 java maven

Maven 依赖管理的主要优势是什么? 我们在服务器上有一个版本化的 lib 文件夹,每个开发人员只需要在 IDE 中导入该目录并保持最新。 Maven 能比这更简单吗?

最佳答案

使用每个项目的库似乎是一个简单的解决方案,事实确实如此。但最终你会遇到问题:

  • 你怎么记得你从哪里得到 foo.jar 的?
  • 您确定这是没有黑客篡改的合法来源吗?
  • foo.jar 到底是哪个版本?它是原始版本还是您修补的版本?
  • You want JavaDoc/sources with that
  • foo.jar 需要 a.jar 需要 y.jar 需要 z.jar 需要。 .. 您真的想下载所有这些并单独管理吗?
  • 您开始了第二个项目。现在您有两个 lib 文件夹。您是复制 jar 还是从第一个项目中引用它们?
  • 您的第二个项目需要一个 JAR 的不同版本。你如何处理这个问题?
  • 假设您想将 foo.jar 升级到下一个版本。使用 Maven,这是一个一分钟的任务。对于 lib 文件夹,它意味着:搜索网络、下载 JAR、将其放在正确的位置、可能重命名、删除旧版本、添加新版本、提交更改、诅咒、对所有依赖项执行相同操作, ...
  • 您想与其他人分享您的项目。他们可能不想要您的 JAR 版本 - Maven 有一个简单而有效的机制来覆盖依赖项。
  • 最终,您的法律部门会要求您保证您的项目没有不兼容的许可证。 Maven 可以为您提供所有依赖项的所有许可证的报告。

关于java - Maven:依赖管理的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17230207/

相关文章:

java - 使用接口(interface)模拟可扩展枚举

java - 推荐的人脸识别开源库有哪些?

java.lang.NoSuchMethodError : org. apache.commons.io.FileUtils.copyInputStreamToFile(Ljava/io/InputStream;Ljava/io/File;)

java - 模拟静态方法的替代方法

java - maven打包时可以创建一个新文件吗?

maven - 我可以将值从 maven 注入(inject)到 persistence.xml 文件中吗?

java - 使用Gson转换为JSON格式的问题

java - 使用自定义主要工件发布 Java 库

java - appium 中的 NoSuchMethodError

maven - aem-api 和 uber-jar 之间的区别?