Maven】Maven在项目开发中的主要作用是什么

2020-04-17 14:20发布

2条回答
收货啦官方账号
1楼 · 2020-04-17 14:53.采纳回答

成功的软件工程需要构建工具。在Java世界中,并不缺少这样的工具,Ant就是一个标准的典型。

Maven是另一种关于开放资源画面的项目管理/构建工具。与Ant相比,Maven是一个将Ant概念中几个步骤深化了的项目管理工具。它不能建立在Ant之上,但它可以利用Ant构建脚本的优势,甚至生成这种脚本。

为了使用Maven,你首先必须创建一个项目对象模型(POM)。POM的默认值是project.xml文件,它描述了程序及其相关性。Maven用POM来构建项目和相关文件。一旦你有了一个基本的project.xml文件,你可以把它用作你所有项目的模板。

Maven的目标大致和Ant的类似。Maven还有许多实用的预定目标,如关于编辑、配置、生成文件、生成Ant构建脚本、创建jars、wars、ears文件等,都要用到它。如果漏掉了什么,你可以随意加入自己想要的目标。

Maven两个最酷的特点是jar  repositories和项目站点生成。Jar  repositories是包含jar文件的本地或远程站点。当你在建立时间证明jar文件和POM的依赖关系时,Maven将自动将jar文件所需版本下载到本地存储库。这个特点可以让你更加轻松地构建项目。项目站点生成目标则是创建一个项目的专业网站,包括强调语法的源代码的链接、代码格式、javadoc、单体测试等等。

通常对Maven的一个抱怨是有时它很慢。一些开发人员已使用Maven来创建一个用来日常开发的Ant文件,然后用Maven分配他们的项目或作为晚上进程的一部分。

无论如何,Maven的这些特点至少让它值得你认真地考虑。 

1   maven和ant的比较

第一:每次和别人说maven的时候,很多会认为是全新的东西而不肯放弃ant。其实,ant脚本是可以直接运行在maven中的。

如果要说maven和ant有什么差别,我觉得最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POM(project object  model)。这个模型定义了项目的方方面面,然后各式各样的脚本在这个模型上工作,而ant完全是自己定义,显然maven更胜一筹。

第二:Maven对所依赖的包有明确的定义,如使用那个包,版本是多少,一目了然。而ant则通常是简单的inclde 所有的jar。导致的最终结果就是,你根本无法确定JBoss中的lib下的common-logging  是哪个版本的,唯一的方法就是打开  META-INF  目录下MANIFEST.MF。估计JBoss迟早会转向Maven的。

第三:Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。

第四:maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode  reference,等。而ant都需要自己去写。试试  maven  site  的效果。

第五:maven目前不足的地方就是没有象ant那样成熟的GUI界面,不过mavengui正在努力中。目前使用maven最好的方法还是命令行,又快又方便。



最后,总结一下,转向maven会为你节省更多的时间。


小鲸鱼
2楼 · 2020-04-17 20:59

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

相关问题推荐

    没有解决我的问题,去提问