×

maven的作用

maven的作用(Ant和Maven的作用是什么两者之间功能,特点有哪些区别)

admin admin 发表于2023-10-10 18:16:29 浏览47 评论0

抢沙发发表评论

本文目录

Ant和Maven的作用是什么两者之间功能,特点有哪些区别

构建工具。 用来构建项目,只需要简单的执行命令就可以。 对于个人开发有时候我们从开发到测试到最后打包可能都是一个人做,并且用一个开发工具就解决这些了,因为大多数开发工具IDE是自带打包功能的。 但是在实际的公司工作中,开发人员与测试人员、部署人员是分开的,部署人员是不会向开发人员要源代码,他们也不会打包,那么怎么部署呢? 开发人员开发后,确认没问题,将源代码放到版本控制服务器中,并且写一个脚本,这个脚本运行就可以自动打包,然后部署人员运行这个文件打包后部署。 那么这个脚本里面需要关系到目录与加载的文件等,这时候如果每个项目用的文件都不同,目录名字千奇百怪,那么就不容易统一管理,于是构建工具出现了,它规定你的目录必须要如何定制,这样方便统一管理。 Ant是比较好的构建工具,但是脚本目录要由自己写,命令中存在依赖关系,编译,打包。 编译目录还要自己指定,maven除了指定好目录,帮你打包,同时maven有一个中央库,这个可就厉害了,一般我们做项目引用一些第三方工具包,两个项目都要用,我们为了方便,会拷贝两份工具包到项目中,无形之中磁盘占用过大,maven中央库帮你下载需要的工具包,并且只需要在pom.xml引用即可,打包时自带进去,而不用平时跟着项目跑。 ant通常脚本名为build.xml,maven的胃pom.xml 。 手打请勿复制,不在乎最佳答案,只为帮助人,混分的请绕行!

eclipse的maven build有什么作用

eclipse的maven build是用来编译eclipse工程的。

1、maven的Build Lifecycle分为三种,分别为default(处理项目的部署)、clean(处理项目的清理)、site(处理项目的文档生成)。他们都包含不同的lifecycle。Build Lifecycle是由phases构成的,下面重点介绍default Build Lifecycle几个重要阶段:

  • validate 验证项目是否正确以及必须的信息是否可用

  • compile 编译源代码

  • test 测试编译后的代码,即执行单元测试代码

  • package 打包编译后的代码,在target目录下生成package文件

  • integration-test 处理package以便需要时可以部署到集成测试环境

  • verify 检验package是否有效并且达到质量标准

  • install 安装package到本地仓库,方便本地其它项目使用

  • deploy 部署,拷贝最终的package到远程仓库和替他开发这或项目共享,在集成或发布环境完成。

以上的phase是有序的(注意实际两个相邻phase之间还有其他phase被省略,完整phase见lifecycle),下面一个phase的执行必须在上一个phase完成后

2、若直接以某一个phase为goal,将先执行完它之前的phase,如mvn install将会先validate、compile、test、package、integration-test、verify最后再执行install phase

maven和svn可以同时使用吗

回答:

目前项目组在开发一个项目,由多个子模块构成,构建工具是maven,版本控制工具是svn。本文想对如何结合使用maven和svn提出一点初步的想法 

一、只有svn的情况 1、首先考虑没有maven的情况。这样的话,项目组每个开发人员,都需要在本地check out所有的源码。2、每次提交之前,需要先更新周边工程的代码。由于工程之间是依赖的,所以很可能需要把所有的代码都更新一遍。在项目依赖混乱的情况下,就更麻烦 ,等于说,项目组成员之间的协作,是以SVN为中心的 这种做法的缺点在于: 1、开发人员本地需要有所有的代码,编译速度很慢 2、如果是别人负责的模块出错,会影响自己的开发。如果项目比较大的话,别人负责的模块的问题,自己实际上是解决不了的这种做法的优点在于: 1、提交之前做一次全量更新,相当于在本地做了一次全量编译,提交到SVN上基本可以保证不会出现编译错误。我称之为“悲观提交”,类似于数据库里“悲观锁” 2、由于本地有所有代码,所以本地构建比较不容易出错 二、引入maven的情况 1、maven的主要作用之一,就是对模块化开发的支持2、开发人员A机器上可以只有工程A,开发人员B机器上只有工程B,其中工程B依赖工程A 3、只要工程A已经deploy到了远程仓库(私服),那么工程B就可以在本地构建,不需要有工程A的代码。也就是说,每个开发人员本地,都只需要check out自己负责的工程这种做法的优点在于: 1、每个人只有自己负责的代码,本地构建的速度快 2、如果其他的模块构建出错,对自己的模块不容易造成影响 3、职责划分清晰 这种做法的缺点是: 1、高层模块的构建,依赖于低层的模块。由于开发人员B本地只有工程B的代码,如果工程A还没有deploy到远程仓库,则工程B就无法进行本地构建 2、提交到SVN后,有可能造成SVN上的全量编译失败。比如A删除了一个方法,并提交到svn,但是没有deploy。那么B就会基于A模块旧的构件来进行本地构建,成功后也提交了代码。这样的话,在svn上编译就无法通过

关于maven的几个问题

  1. maven提供了很好的jar包管理方式。其实maven在做大项目的时候更能体现其优点,打个比方,一个大的系统拆分成好多子系统,各个子系统包含自己的jar包,互相之间也有重复的,最后在构建这个大的系统时通过人工管理jar是很麻烦的一件事。maven帮你管理可以有效的去除重复jar并且使用maven的mvn dependency:tree可以很方便的看到各个jar之间的依赖关系。   没有maven也可以构建项目,你可以使用 eclipse插件构建war或者使用ant脚本。当然maven除了管理jar还有其他作用,比如自动单元测试,管理项目版本(snapshot,beta,release。。。)

  2. maven clean清除了生成的class文件

  3. install是把打出的jar包安装到本地仓库,并不是从远端获取jar。

本人接触maven也才一年多,纯手打,希望可以帮到你