Maven基础

来源:互联网 发布:js设置input获取焦点 编辑:程序博客网 时间:2024/05/23 00:02

maven:服务于基于java平台的项目构建,依赖管理和项目管理信息。maven是跨平台的。

maven对项目目录结构、测试用例方法提供了成熟的规则。约定优于配置。


总结:

1自动构建工具,抽象构建的生命周期。构建方面:清理,编译,测试到生成报告,打包和部署。

2依赖管理,提供中心仓库。引入经纬确定每一个构件artifact。

3良好的测试集成。 maven对于”如果想要在打包前进行测试,如果测试不通过不打包”这种需求很容易做到。

4良好子项目管理。 maven对于项目来说,可以有一个大项目包括N个子项目构成。而不是像eclipse,只可以有一个根项目。

运行maven命令实际是在maven文件夹下的bin文件下的具体执行。它的实际执行也是执行的java。


构建工具:make,不跨平台。ant,相当于java版本的ant。

maven项目的核心是pom文件。定义项目基本信息,项目如何构造,声明依赖。

pom文件中xml头,指定xml文档的版本和编码方式。最重要的是groupid,artifactid,version,这三个元素定义了一个项目的坐标。groupid定义了项目属于哪个组,这个与公司有关,开辟一个myapp项目,那么groupid定位net.wanpro.myapp。artifactid相当于在当前maven项目在组中的唯一id。可能需要为不同的子项目子模块分配artifactid。version版本,SNAPSHOT快照。

pom实现与具体代码相互分离。

pom中的依赖用groupID,artifactid,version来定坐标。scope来确定范围,test表示只对测试有效。即在测试代码中可以用import这个包,出了测试就不可。

单元测试:一个典型的单元测试包括三个部分,准备测试类和数据,执行,检查结果。

执行打包命令的时候,即mvn clean package命令,输出到target目录,先编译再测试。命名方式artifactid-version.jar形式。

如果有需要我们可以把这个jar复制到其他的项目中从而使用它。如果想maven直接引用这个jar,需要安装,执行mvn clean install

install将项目的构建输出文件安装到本地仓库中。



mvn package 只是将你的代码打包到输出目录,一般的是 target下面。

install是把打出的包装载到本地仓库,一般没有设置过是在 用户目录下的 .m2\下面。

只有构件被下载到了本地仓库才能为项目所有。同样也试用于自己写的模块。

mvn clean install命令,构建项目,执行编译测试打包工作,最后将构建安装到本地仓库。该模块就可以供给其他maven项目使用。

世界上任何一个构件都可以使用maven坐标唯一标示,maven坐标元素表示groupID,artifactid,version,packaging,classifier。

groupid定义实际项目。一个实际项目中往往有很多模块。例如SpringFramework这个实际的项目需要使用模块来分割。artifactid,推荐命名办法是使用实际项目名称作为前缀,版本号跟上。packaging打包方式,不确定的时候就是jar。

classifier用来帮组定义构建输出的一些附属附件。不能直接定义附属附件,因为附属附件不是默认生成的而是通过附加的插件生成的(没太懂)


在maven世界中,任何一个依赖,插件或者项目构造的输出都可以成为构件。构件的物理表现形式是文件。maven通过仓库来统一管理。

仓库的布局方式:任何一个构件都有其坐标,通过坐标定义在仓库中的存储路径。groupid/artifactid/version/artifactid-version.packaging


仓库分为两种,本地仓库和远程仓库。远程仓库分中央仓库,私服,其他公共库。

私服是架设在局域网内的仓库服务。私服代理广域网上的远程仓库。当maven需要下载构件的时候,从私服上请求,当私服上不存在这个构件,就从远程库下载。本地也可以上传构件供内部使用。私服的好处:加速构建,节省带宽,提高部署内部构件。



maven的生命周期包括,清理,初始化,编译,测试,打包,集成测试,验证,部署。生命周期抽象了构建的步骤,具体的实现靠的插件。

maven的生命周期和插件机制保证了所有的maven项目有一致的构建标准,又通过默认插件简化和稳定了实际项目的构建。用户可以通过配置插件自定义插件编写插件来自定义构建行为。

三个生命周期:clean,default,site。每个生命周期内有不同的阶段。

软件越来越复杂,设计人员通过各种方式把软件分为模块,得到更加清晰的设计和重用性。maven的聚合特性把项目的各个模块聚合在一起构建。 


配置maven

maven:提供版本管理

版本管理:管理软件版本,依赖(包)管理,各种插件(打包,发布)

由于Maven会把所有依赖的包放在本机的一个目录下,所以实际上是脱离Project本身存在的。IntelliJ IDEA引入了一个External Library的概念,所有的Maven依赖性都会放在这里,和项目自带的库区分开。并且Module之间会智能的判断,你不需要Maven Install来进行引用代码的更新。

pom.xml这个文件是我们Maven项目的核心文件,POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖。


maven的另外的核心是关于生命周期和插件。

生命周期本身是抽象的,本身不做任何事情,具体的事项由插件完成。

maven有三套生命周期。相互独立的生命周期。

分别为clean,default,site。

clean生命周期中用户清理项目,default的目的用于构建项目。site建立项目站点。

每个生命周期中有一些阶段,各个阶段是有前后顺序的。

clean的生命周期pre-clean,clean,post-clean.当执行clean的时候会执行pre.

default的生命周期定义了真正构建时所需要完成的工作。(此部分的意义在于编译测试打包安装等,涉及的东西较为复杂。暂时理解不了)

site建立和发布项目站点。

常用的maven使用命令:

clean install

mvn:run 



0 0