Java Maven:依赖关系管理的优势
Maven依赖项管理的主要优势是什么?Java Maven:依赖关系管理的优势,java,maven,Java,Maven,Maven依赖项管理的主要优势是什么? 我们在服务器上有一个版本化的lib文件夹,每个开发人员只需在IDE中导入该目录并使其保持最新。Maven会比这更简单吗?使用Maven依赖项可以获得以下优势: 1。一致性:-Maven允许组织根据一组最佳实践标准化。因为Maven项目遵循一个标准模型,所以它们不那么不透明。《美国传统词典》(American Heritage dictionary)对这个词的定义完美地抓住了这个意思:“以有序、逻辑和美学上一致的部分关系为特征。” 2。可重用性:< /强>
我们在服务器上有一个版本化的lib文件夹,每个开发人员只需在IDE中导入该目录并使其保持最新。Maven会比这更简单吗?使用Maven依赖项可以获得以下优势:
1。一致性:-Maven允许组织根据一组最佳实践标准化。因为Maven项目遵循一个标准模型,所以它们不那么不透明。《美国传统词典》(American Heritage dictionary)对这个词的定义完美地抓住了这个意思:“以有序、逻辑和美学上一致的部分关系为特征。” 2。可重用性:< /强> -Maven是建立在重用基础之上的。当您采用Maven时,您有效地重用了整个行业的最佳实践 3。敏捷性:-Maven降低了重用构建逻辑和组件的障碍。使用Maven时,更容易创建组件并将其集成到多项目构建中。对于开发人员来说,在不同的项目之间跳转更容易,而不需要伴随自定义的、自行开发的构建系统而出现陡峭的学习曲线 3。可维护性:-采用Maven的组织可以停止构建,并开始关注应用程序。Maven项目更具可维护性,因为它们的惊喜更少,并且遵循通用模型 单击了解更多好处是的,它可以
"each developer just need to import that dir in the ide and keep it up to date"
Maven是自动完成的;-)
如果使用持续集成和其他部署机制,它也有很大的优势。您可以轻松地在任何环境中构建项目,而不必关心某些lib文件夹。此外,还有许多关于构建、部署、代码分析等方面的插件。使用maven,您可以拥有一个私有存储库,或者使用公共存储库(如maven2)获取您在项目中使用的库,因此,您不必亲自下载它们,也不必通过subversion服务器在同事之间管理它们 如果要将一个库更改为另一个库,或将其更新为较新版本,则只需修改maven配置文件中的版本号或库名称即可完成,而无需考虑从何处下载库,也无需与所有人共享。您只需共享pom.xml文件 Maven不仅提供了这一点,您还可以配置如何打包应用程序(WAR、EAR、JAR、APK等)、编译应用程序(JDK版本、参数等),甚至如何创建项目的Eclipse结构,这样您就可以创建一个新项目,其中只包含源代码、资源和神奇的“pom.xml”Maven配置文件
你应该试试看 Maven当然很棒,但有时像您这样的版本化lib文件夹至少看起来更简单。当您使用没有maven元数据的库时,您需要先做一些工作,然后才能将其放入maven Repo中(您可能还应该在某些服务器上有一个中央Repo,用于放置这些内容)。使用每个项目库似乎是一个简单的解决方案,而且确实如此。但最终你会遇到问题:
- 你怎么记得你从哪里得到的
foo.jar
- 你确定这是一个没有黑客篡改的合法来源吗
- 确切地说,哪个版本是
?是原始版本还是你修补过的foo.jar
- ?
需要foo.jar
需要a.jar
需要y.jar
需要。。。你真的想下载所有这些并单独管理吗z.jar
- 你开始第二个项目。现在您有两个lib文件夹。您是复制JAR还是引用第一个项目中的JAR
- 您的第二个项目需要一个JAR的不同版本。你是怎么处理的
- 假设您想将
升级到下一个版本。对于Maven,这是一个一分钟的任务。对于lib文件夹,它意味着:搜索web、下载JAR、将其放在正确的位置、可能重命名它、删除旧版本、添加新版本、提交更改、诅咒、对所有依赖项执行相同操作foo.jar
- 您想与其他人共享您的项目。他们可能不希望您的JARs版本—Maven有一个简单而有效的机制来覆盖依赖项
- 最终,您的法律部门会要求您保证您的项目没有不兼容的许可证。Maven可以为您提供所有依赖项的所有许可证的报告
- 对于大多数库,很容易获得Javadoc
- 获取大多数库的源代码很容易(例如,如果您想调试某些东西,那么它很有用)
- 在编译、运行和测试时,很容易指定和分析jar在什么依赖项下需要什么