maven项目管理

来源:互联网 发布:两个淘宝店铺怎么关联 编辑:程序博客网 时间:2024/05/16 15:33

转自:

http://blog.csdn.net/mapdigit/article/category/1238213

http://blog.csdn.net/whuslei/article/details/7989102

1、Maven是什么

  Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

2、Maven怎样实现依赖管理

  每个Maven项目都有一个pom.xml文件,pom(Project Object Model)为项目命名,提供了项目的一组唯一标识符(坐标),并且通过依赖,父和先决条件来定义它和其它项目的关系。

  项目的唯一标识符(坐标)由组标识符(groupId)、构件标识符(artifactId)和版本(version)来定义的, 项目间可以通过使用这些坐标来声明依赖

4、最佳构建Maven项目方式

   所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块,multi-module)相互关联。所以我们应该构建多模块的Maven项目。这里实际上遵守一个设计模式原则:“高内聚,低耦合”。

 

5、如何构建包含模块的项目

   多模块的项目就类似于接口与实现类,包含模块的项目本身也是一个maven项目,但它不应该有任何实现,所以它是一个”simple project”,直接在” Maven项目构建图1”中选择“create a simple project”在弹出的对话框的“Packing“下拉框中选择”pom“即可(即打包方式为”pom”,通常我们会把项目打包为“jar”或者”war”).


操作:

mvn compile

mvn test

mvn package

  • generate-sources: 通常是通过插件支持创建额外的源代码。
  • compile: 编译项目应用代码
  • test-compile: 编译项目单元测试代码
  • test: 运行项目单元测试(一般为Junit 测试)
  • package: 打包项目可以执行代码(以Jar/War/Ear形式)
  • integration-test: 如有需要处理及部署应用以便执行系统集成测试。
  • install: 将应用打包发布到本地Maven 软件包以便其它Maven引用。(注意Install不是指安装Java应用)
  • deploy: 发布到远程Maven软件包以便其他Maven项目下载引用。
管理jar包

  1. <dependency>  
  2.       <groupId>junit</groupId>  
  3.       <artifactId>junit</artifactId>  
  4.       <version>4.10</version>  
  5.       <scope>compile</scope>  
  6.     </dependency>  

Maven支持下面几种Scope:

  • compile: 缺省Scope,应用到Maven所有阶段。
  • provided: 只在编译代码时需要,而无需发布到最终Jar包中。
  • runtime: 只在运行时需要,比如JDBC驱动。
  • test: 只在编译和运行单元测试时需要,比如Juint测试。
插件
Maven预先定义了很多插件,可以参见http://maven.apache.org/plugins/ ,如果需要另外开发插件,可以参见http://maven.apache.org/plugin-developers/index.html

  1. <build>  
  2.   <plugins>  
  3.     <plugin>  
  4.       <groupId>org.apache.maven.plugins</groupId>  
  5.       <artifactId>maven-compiler-plugin</artifactId>  
  6.       <version>2.0.2</version>  
  7.       <configuration>  
  8.         <source>1.5</source>  
  9.         <target>1.5</target>  
  10.       </configuration>  
  11.     </plugin>  
  12.   </plugins>  
  13. </build>  
其中configuration部分用来配置插件参数。具体可以参见插件文档,

Mavne的插件分为两类:

  • Build plugins  在Build生命周期中执行,必须定义在<build/>元素下.
  • Reporting plugins 在生产site阶段运行,定义在<reporting/> 元素。




0 0
原创粉丝点击