Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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_Eclipse_Spring_Maven 3 - Fatal编程技术网

Java Maven可以将依赖关系引入到项目中吗?

Java Maven可以将依赖关系引入到项目中吗?,java,eclipse,spring,maven-3,Java,Eclipse,Spring,Maven 3,我正在与Eclipse、Spring、Java和Tomcat一起使用Subversion进行一些小项目的版本控制。我想第一次尝试使用Maven,但我已经看到一件我不喜欢的事情,那就是如果我用Maven启动一个项目,它会将所有依赖项下载到我的.m2文件夹和项目的所有类路径中,但我们希望将所有依赖项移动到WEB-INF/lib中,这样我们就可以将它们签入颠覆 Maven能做到这一点吗?应该这样做吗?将二进制软件包检入源代码管理并不是很理想,而且与maven背道而驰。一个值得关注的问题是,当这些在线存

我正在与Eclipse、Spring、Java和Tomcat一起使用Subversion进行一些小项目的版本控制。我想第一次尝试使用Maven,但我已经看到一件我不喜欢的事情,那就是如果我用Maven启动一个项目,它会将所有依赖项下载到我的
.m2
文件夹和项目的所有类路径中,但我们希望将所有依赖项移动到
WEB-INF/lib
中,这样我们就可以将它们签入颠覆


Maven能做到这一点吗?应该这样做吗?

将二进制软件包检入源代码管理并不是很理想,而且与maven背道而驰。一个值得关注的问题是,当这些在线存储库崩溃时会发生什么情况,解决方案是使用以下内容托管您自己的存储库。有些人不喜欢这样,他们必须在源代码管理的同时维护另一个系统,但将maven带来的所有功能都放在桌面上是值得的。

将二进制软件包签入源代码管理并不是很理想,而且与maven的要求背道而驰。一个值得关注的问题是,当这些在线存储库崩溃时会发生什么情况,解决方案是使用以下内容托管您自己的存储库。有些人不喜欢这样,他们必须在源代码管理的同时维护另一个系统,但将maven带来的所有功能都放在桌面上是值得的。

您可以借助maven下载依赖项(例如,通过使用),但您肯定不想这样做

来自(或任何其他版本控制系统):

  • 它使用更少的存储空间,而存储库通常相当大,因为每个JAR只保存在一个地方,这实际上是在节省空间,尽管看起来可能不是这样
  • 它使签出项目更快-初始签出,并且在较小程度上更新,如果CVS中没有大的二进制文件,项目将更快。尽管以后可能需要再次下载它们,但这种情况只发生一次,对于一些已经存在的常见jar来说可能不需要
  • 不需要版本控制-CVS和其他源代码管理系统是为版本控制文件而设计的,但是外部依赖项通常不会更改,或者如果它们更改了文件名以指示新版本,则外部依赖项通常不会更改。与将它们保存在本地工件缓存中相比,将它们存储在CVS中没有任何额外的好处

您可以在Maven的帮助下下载依赖项(例如使用),但您肯定不想这样做

来自(或任何其他版本控制系统):

  • 它使用更少的存储空间,而存储库通常相当大,因为每个JAR只保存在一个地方,这实际上是在节省空间,尽管看起来可能不是这样
  • 它使签出项目更快-初始签出,并且在较小程度上更新,如果CVS中没有大的二进制文件,项目将更快。尽管以后可能需要再次下载它们,但这种情况只发生一次,对于一些已经存在的常见jar来说可能不需要
  • 不需要版本控制-CVS和其他源代码管理系统是为版本控制文件而设计的,但是外部依赖项通常不会更改,或者如果它们更改了文件名以指示新版本,则外部依赖项通常不会更改。与将它们保存在本地工件缓存中相比,将它们存储在CVS中没有任何额外的好处

    • 了解Maven最重要的一点是,项目的依赖项不应签入版本控制(不取决于哪个版本控制)。Maven的想法是将依赖项只放在一个地方$HOME/.m2/存储库中。这意味着对于您正在工作的每个项目,您的硬盘上只有一次依赖项。依赖关系管理使您可以轻松地从项目中添加/更改/删除依赖关系。此外,Maven不仅将处理依赖关系,它还将支持您进行单元/集成测试,创建报告,如代码覆盖等。如果你真的想与Maven合作,你应该设置一个存储库管理器,比如Nexus、Artifactory或Archiva


      最重要的一点是,如果你不喜欢Maven让你的手指远离Maven的工作方式,否则你将失去挑战。如果您喜欢使用maven,您必须接受maven方式

      了解maven最重要的一点是,项目的依赖项不应签入版本控制(不取决于哪个版本控制)。Maven的想法是将依赖项只放在一个地方$HOME/.m2/存储库中。这意味着对于您正在工作的每个项目,您的硬盘上只有一次依赖项。依赖关系管理使您可以轻松地从项目中添加/更改/删除依赖关系。此外,Maven不仅将处理依赖关系,它还将支持您进行单元/集成测试,创建报告,如代码覆盖等。如果你真的想与Maven合作,你应该设置一个存储库管理器,比如Nexus、Artifactory或Archiva


      最重要的一点是,如果你不喜欢Maven让你的手指远离Maven的工作方式,否则你将失去挑战。如果您喜欢使用maven,您必须接受maven方式

      为什么需要将依赖项提交到源存储库?这样您就可以在收到通知后立即从存储库重建项目。让新员工能够轻松构建系统是至关重要的。我将提供一个不同的观点,即对于许多具有一定复杂性的项目来说,您尝试的做法实际上是首选的