Chinaunix首页 | 论坛 | 博客
  • 博客访问: 634344
  • 博文数量: 17
  • 博客积分: 248
  • 博客等级: 二等列兵
  • 技术积分: 237
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-26 12:13
个人简介

别让往昔的悲伤和对未来的恐惧,毁了你当下的幸福。

文章分类

全部博文(17)

文章存档

2013年(6)

2012年(2)

2011年(9)

我的朋友

分类: 项目管理

2011-09-01 00:04:34

Maven 项目管理工具:
 Maven是一个项目管理工具,它包含了一个项
目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project
Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在
生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
1.下载及设置环境变量
 1. 下载
 2. 设置环境变量
    M2_HOME="安装目录"
    追加path=...;%M2_HOME%\bin(windows)
    MAVEN_OPTS="-Xms128m -Xmx512m"
2.验证maven
 命令行下:mvn -v
3.使用maven建立一个helloWorld
 1. 建立hello-world文件夹
 2. 建立pom.xml 文件
    pom.xml的内容如下
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns=""
  3.         xmlns:xsi=""
  4.         xsi:schemaLocation="
  5.         ">
  6.     <modelVersion>4.0.0</modelVersion>
  7.     <groupId>org.gruax.maven</groupId>
  8.     <artifactId>hello-world</artifactId>
  9.     <version>1.0.0</version>
  10.     <name>Mave Hello World Project</name>
  11.     
  12.     <properties>
  13.            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  14.       </properties>

  15.     
  16.     <build>
  17.         <plugins>
  18.             <plugin>
  19.                 <groupId>org.apache.maven.plugins</groupId>
  20.                 <artifactId>maven-compiler-plugin</artifactId>
  21.                 <configuration>
  22.                     <source>1.5</source>
  23.                     <target>1.5</target>
  24.                 </configuration>
  25.             </plugin>
  26.             
  27.             <plugin>
  28.                 <groupId>org.apache.maven.plugins</groupId>
  29.                 <artifactId>maven-shade-plugin</artifactId>
  30.                 <version>1.2.1</version>
  31.                 <executions>
  32.                     <execution>
  33.                         <phase>package</phase>
  34.                         <goals>
  35.                             <goal>shade</goal>
  36.                         </goals>
  37.                         <configuration>
  38.                             <transformers>
  39.                                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  40.                                     <mainClass>org.guarx.maven.HelloWorld</mainClass>
  41.                                 </transformer>
  42.                             </transformers>
  43.                         </configuration>
  44.                     </execution>
  45.                 </executions>
  46.             </plugin>
  47.         </plugins>
  48.     </build>
  49.     
  50.     <dependencies>
  51.         <dependency>
  52.             <groupId>junit</groupId>
  53.             <artifactId>junit</artifactId>
  54.             <version>4.8.2</version>
  55.             <scope>test</scope>
  56.         </dependency>
  57.     </dependencies>
  58. </project>

POM文件说明:
 和ant一样文件的根元素都是
 接下来的三个必须的元素:
   4.0.0
   org.gruax.maven
   hello-world
   1.0.0 
   Mave Hello World Project
 
  
 声明项目的依赖包,以上文件什么了junit,这样maven会去mavn的资源仓库去下载相关jar
 
 
  
   
 这块声明项目的插件,以上文件声明了compile-plugin和maven-shade-plugin(相对应MANIFEST.MF的设置)

4.mvn 约定
 mvn项目对目录结构的约定:
  1.pom.xml文件放在项目的根路径下
  2.源代码路径./src/main/java/
  3.测试代码路径./src/test/java/
  4.相关资源文件路径./src/main/resource/
  5.相关资源文件路径./src/test/resource/
  6.编译后的文件放在./target下 
 
5. mvn 简单命令
 mvn clean compile(编译)
 mvn clean test(定义的scope)
 mvn clean package(打包,默认是jar)
 mvn clean install(生成jar放到maven的repository)
 mvn dependency:list(查看依赖列表)
 mvn dependency:tree(以树的形式显示依赖关系)
 mvn dependency:analyze(分析依赖列关系)
 mvn eclipse:eclipse (生成eclipse项目)


6.使用ArcheType生成项目骨架
 mvn archeType:generate(根据提示一步一步完成,生成项目骨架,省了手动建立目录结构)

7.mvn的依赖范围
 Compile: 编译依赖范围,不指定,默认就是compile。compile对于编译、测试、运行三种classpath有效,比如spring
 Test:  测试依赖范围。Test只对测试classpath有效 ,比如junit
 Provided: 已提供依赖范围。Provided对编译、测试的classpath有效,运行是由容器提供,比如servlet-api 
 Runtime: 运行时依赖。Runtime对于测试和运行classpath有效,比如jdbc驱动
 System:  系统依赖。通过systemPath元素来指定依赖包的位置 


8.TDD里忽略测试失败正常构建:


org.apache.maven.plugins
maven-surefire-plugin

true


testFailureIgnore表达式也可以以参数形式传入:mvn test -Dmaven.test.failure.ignore=true

9.跳过单元测试
 mvn install -Dmaven.test.skip=true

POM配置:


org.apache.maven.plugins
maven-surefire-plugin

true


10.Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件
POM:



maven-assembly-plugin


jar-with-dependencies




mvn install assembly:assembly


11.添加j2ee依赖



org.apache.geronimo.specs
geronimo-servlet_2.4_spec
1.1.1
provided



org.apache.geronimo.specs
geronimo-jsp_2.0_spec
1.1
provided


12.多模块夫parent POM:

xmlns:xsi=""
xsi:schemaLocation="
">
4.0.0
org.sonatype.mavenbook.ch06
simple-parent
pom
1.0
Chapter 6 Simple Parent Project

simple-weather
simple-webapp





org.apache.maven.plugins
maven-compiler-plugin

1.5
1.5







junit
junit
3.8.1
test


阅读(962) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~