初次接触Maven(非个人总结,资料来源于网络)

介绍

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和
文档的项目路管理工具软件。
	Maven不仅以程序构建能力为特色,还提供高级项目管理工具。由于Maven的缺省
构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。
由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且
公司项目采用 Maven 的比例在持续增长。

特点

1.Maven和Ant针对构建问题的两个不同方面。Ant为Java技术开发项目提供跨平台的构建
任务。Maven本身描述项目的高级方面,它从Ant借用了绝大多数构建任务。
2.Maven除了具备Ant的功能外,还增加了以下主要的功能:
1)使用Project Object Model来对软件项目管理;
2)内置了更多的隐式规则,使得构建文件更加简单;
3)内置依赖管理和Repository来实现依赖的管理和统一存储;
4)内置了软件构建的生命周期;
3.Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model)一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency 
Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标
(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的
项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 
执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响
就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件
这样的工作。
此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

常用命令

mvn archetype:generate 创建Maven项目
mvn compile 编译源代码
mvn deploy 发布项目
mvn test-compile 编译测试源代码
mvn test 运行应用程序中的单元测试
mvn site 生成项目相关信息的网站
mvn clean 清除项目目录中的生成结果
mvn package 根据项目生成的jar
mvn install 在本地Repository中安装jar
mvn eclipse:eclipse 生成eclipse项目文件
mvnjetty:run 启动jetty服务
mvntomcat:run 启动tomcat服务
mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类

Maven和Ant的异同

1.ant脚本是可以直接运行在maven中的。maven和ant最大的差别就是在于maven的编译
以及所有的脚本都有一个基础,就是POM(project object model)。这个模型定义了
项目的方方面面,然后各式各样的脚本在这个模型上工作,而ant完全是自己定义,
显然maven更胜一筹。
2.Maven对所依赖的包有明确的定义,如使用那个包,版本是多少,一目了然。而ant则
通常是简单的include 所有的jar。导致的最终结果就是,你根本无法确定JBoss中的lib
下的common-logging 是哪个版本的,唯一的方法就是打开 METAINF 目录下
MANIFEST.MF。估计JBoss迟早会转向Maven的。
3.Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,
tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,
则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好
处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,
ant的发布则要把所有的包一起发布,显然maven又胜了一筹。 
4.maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode 
reference,等。而ant都需要自己去写。
5.maven目前不足的地方就是没有像Ant那样成熟的GUI界面,不过mavengui正在努力中。
目前使用maven最好的方法还是命令行,又快又方便。

特别注意:
仅供参考学习,转载请附上原文链接
分享学习心得,如有侵权,望联系本人处理
还在读大学的程序员,项目经验少,如有纰漏,感谢指正
需要源代码请联系本人
谢谢配合

如果这篇文章对您有帮助,小小的点个赞,算是给小学弟的鼓励吧!谢谢大佬!!/呱呱.jpg

发布了48 篇原创文章 · 获赞 35 · 访问量 4989

猜你喜欢

转载自blog.csdn.net/qq_44749053/article/details/104185644