Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven:依赖关系管理的优势_Java_Maven - Fatal编程技术网

Java Maven:依赖关系管理的优势

Java Maven:依赖关系管理的优势,java,maven,Java,Maven,Maven依赖项管理的主要优势是什么? 我们在服务器上有一个版本化的lib文件夹,每个开发人员只需在IDE中导入该目录并使其保持最新。Maven会比这更简单吗?使用Maven依赖项可以获得以下优势: 1。一致性:-Maven允许组织根据一组最佳实践标准化。因为Maven项目遵循一个标准模型,所以它们不那么不透明。《美国传统词典》(American Heritage dictionary)对这个词的定义完美地抓住了这个意思:“以有序、逻辑和美学上一致的部分关系为特征。” 2。可重用性:< /强>

Maven依赖项管理的主要优势是什么?
我们在服务器上有一个版本化的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的不同版本。你是怎么处理的
  • 假设您想将
    foo.jar
    升级到下一个版本。对于Maven,这是一个一分钟的任务。对于lib文件夹,它意味着:搜索web、下载JAR、将其放在正确的位置、可能重命名它、删除旧版本、添加新版本、提交更改、诅咒、对所有依赖项执行相同操作
  • 您想与其他人共享您的项目。他们可能不希望您的JARs版本—Maven有一个简单而有效的机制来覆盖依赖项
  • 最终,您的法律部门会要求您保证您的项目没有不兼容的许可证。Maven可以为您提供所有依赖项的所有许可证的报告

Maven依赖关系管理的额外好处:

  • 对于大多数库,很容易获得Javadoc
  • 获取大多数库的源代码很容易(例如,如果您想调试某些东西,那么它很有用)
  • 在编译、运行和测试时,很容易指定和分析jar在什么依赖项下需要什么

我们使用Maven已经两年了,而且非常容易操作!我们不会有其他的系统,所以我强烈推荐这是一个很好的答案。我想补充一点,maven允许您直接下载源代码和javadoc JAR。