java Maven可以将依赖关系拉入项目中吗?
我正在与Eclipse、Spring、Java和Tomcat一起使用Subversion进行一些小项目的版本控制。我想第一次尝试使用Maven,但我已经看到一件我不喜欢的事情,那就是如果我用Maven启动一个项目,它会将所有依赖项下载到我的.m2
文件夹中,并将所有类路径下载到项目中,但我们希望将所有依赖项移动到WEB-INF/lib
,这样我们就可以将它们签入Subversion
Maven能做到这一点吗?应该这样做吗
你可以在下面搜索框中键入要查询的问题!
我正在与Eclipse、Spring、Java和Tomcat一起使用Subversion进行一些小项目的版本控制。我想第一次尝试使用Maven,但我已经看到一件我不喜欢的事情,那就是如果我用Maven启动一个项目,它会将所有依赖项下载到我的.m2
文件夹中,并将所有类路径下载到项目中,但我们希望将所有依赖项移动到WEB-INF/lib
,这样我们就可以将它们签入Subversion
Maven能做到这一点吗?应该这样做吗
# 1 楼答案
了解Maven最重要的一点是,项目的依赖项不应签入版本控制(不取决于哪个版本控制)。Maven的想法是将依赖项只放在一个地方$HOME/。m2/存储库。这意味着对于您正在工作的每个项目,您的硬盘上只有一次依赖项。依赖关系管理使您可以轻松地从项目中添加/更改/删除依赖关系。此外,Maven不仅将处理依赖关系,它还将支持您进行单元/集成测试,创建报告,如代码覆盖等。如果你真的想与Maven合作,你应该设置一个存储库管理器,比如Nexus、Artifactory或Archiva
最重要的一点是,如果你不喜欢Maven让你的手指远离Maven的工作方式,否则你将失去挑战。如果你喜欢与maven合作,你必须接受maven的方式
# 2 楼答案
将二进制软件包签入源代码管理并不理想,这与maven的要求背道而驰。一个值得关注的问题是当这些在线存储库崩溃时会发生什么,解决方案是使用类似Artifactory的东西来托管您自己的存储库。有些人不喜欢这样,他们必须在源代码管理的同时维护另一个系统,但是把maven带来的所有特性都放在桌面上是值得的
# 3 楼答案
您可以借助Maven下载依赖项(例如通过使用maven-dependeny-plugin),但您肯定不想这样做
从Why not Store JARs in CVS?(或任何其他版本控制系统):