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的内容如下
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns=""
- xmlns:xsi=""
- xsi:schemaLocation="
- ">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.gruax.maven</groupId>
- <artifactId>hello-world</artifactId>
- <version>1.0.0</version>
- <name>Mave Hello World Project</name>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>1.2.1</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <transformers>
- <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
- <mainClass>org.guarx.maven.HelloWorld</mainClass>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.2</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- </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
junit
junit
3.8.1
test
阅读(982) | 评论(0) | 转发(0) |