如何在我的Java项目中使用Maven以及为什么?

zen*_*ngr 20 java maven-2

我试图弄清楚Maven的使用,我得到了许多描述其功能和用途的文章.但是,从生产力的角度来看,我无法理解Maven的实际用途.

从我在学校项目中习惯的只是在Eclipse中创建一个新的Java项目,编写你的代码,创建一个.war(如果是基于web的)并将代码粘贴到Tomcat的webapps文件夹并启动服务器!

所以,

  1. Maven在哪里成名?我使用过Ant,我理解Ants对标准化构建过程的好处.但为什么我们需要Maven形式的高级Ant?

  2. 无论如何,我需要使用它,所以我从哪里开始 - 基本流程,一些好的教程?

谢谢

And*_*ndy 14

Maven用于管理构建,测试和部署过程.它可以分离单元测试和集成测试,因此您只需在必要时运行它们并减少构建时间.

它也是一个依赖管理器,这意味着当你意识到你的项目需要的服务器部分,apache commons-logging 1.0.4但客户端与过去的任何东西冲突时0.7.9,你可以只添加几行到相应的pom.xml文件,Maven处理所有这些(下载,安装,并跟踪这些依赖项的不同版本).

在我目前的任务之前,我不是一个信徒,但是在将它用于大型企业应用程序两年后,我绝对尊重Maven带来的东西.有很多在线资源,但如果你想成为这个领域的主角并且真的感到不舒服,我建议你买一本书 - O'Reilly的一本书很有帮助.


忘记提到有一个Eclipse插件,它使得它几乎不用于Eclipse:m2Eclipse.


第二次更新示例pom.xml段以回答OP问题:

pom.xml将包含XML代码,例如:

<dependencies>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.0.4</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

这些是从中央Maven存储库(google"maven nexus")下载的,或者您可以配置自己的其他存储库(例如您自己的项目,或者如果您没有连接Internet).


Osc*_*Ryz 5

我和你有着完全相同的感觉,多年来我一直避免使用Maven.

问题是,它允许您轻松获取应用程序可能需要的所需jar(称为依赖项 - jar和其他东西 - ).所以下次有人运行你的项目时,他会自动获得罐子.

我知道这有点难以理解,直到你使用它的现有项目.

例如,我最近下载了一个开源项目,它依赖于10或12种不同的jar版本.在下载源代码并执行Maven之后,为我下载了所有这些jar(以及更多其他的).

Maven(我的朋友告诉我)的问题是,为了执行"Hello world"计划,它首先下载世界来迎接他.:P