1.基本的格式
1 < project xmlns ="http://maven.apache.org/POM/4.0.0" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > 2 < modelVersion > 4.0.0 </ modelVersion > 3 < groupId > com.swust.hj </ groupId > 4 < artifactId > HelloWorld </ artifactId > 5 < version > 0.0.1-SNAPSHOT </ version > 6 < name > HelloWorld 4 Maven Test </ name > 7 </ project >
project——根元素,声明命名空间及xsd元素
modelVersion——指定当前POM模型的版本,对于Maven2和Maven3,它只能是4.0.0
groupId——表明项目属于哪个组,相当于包
artifactId——在当前组中的唯一ID
version——版本号,gav形成坐标
packaging——可选项
name——可选项,项目名称
2.项目骨架
src/main/java——源码
src/main/resources——资源
src/test/——测试
target/——生成目标文件
3.测试
POM中添加依赖
1 < dependencies > 2 < dependency > 3 < groupId > junit </ groupId > 4 < artifactId > junit </ artifactId > 5 < version > 4.7 </ version > 6 < scope > test </ scope > 7 </ dependency > 8 </ dependencies >
包含gav定位相关包;
scope它主要管理依赖的部署,可以为以下值:
* compile,缺省值,适用于所有阶段,会随着项目一起发布。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
通过以上配置,即可直接import相关的类进行使用。将测试类放到src/test/java/目录下
1 import static org.junit.Assert.assertEquals; 2 3 import org.junit.Test; 4 5 public class HelloWorldTest { 6 @Test 7 public void testSayHello(){ 8 HelloWorld helloWorld = new HelloWorld(); 9 String result = helloWorld.sayHello( " XXX " ); 10 assertEquals( " XXX Say Hello World! " ,result); 11 } 12 }
这样可通过 mvn test进行测试执行,测试结果将生成在target\surefire-reports中
4.操作命令
mvn clean——删除target文件
mvn complite——编译
mvn test——测试,会先执行编译
mvn package——打包,会先执行test
mvn install——安装到本地仓库,会先打包
如果需要打包成带main的可执行jar,则需在pom中添加plugin,如下
1 < build > 2 < plugins > 3 < plugin > 4 < groupId > org.apache.maven.plugins </ groupId > 5 < artifactId > maven-shade-plugin </ artifactId > 6 < version > 1.2.1 </ version > 7 < executions > 8 < execution > 9 < phase > package </ phase > 10 < goals > 11 < goal > shade </ goal > 12 </ goals > 13 < configuration > 14 < transformers > 15 < transformer implementation ="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" > 16 < mainClass > com.swust.hj.HelloWorld </ mainClass > 17 </ transformer > 18 </ transformers > 19 </ configuration > 20 </ execution > 21 </ executions > 22 </ plugin > 23 </ plugins > 24 </ build >
进行打包后,会在jar的METAINF/MANIFEST.MF文件中多上一行:
Main-Class: com.swust.hj.HelloWorld
这样即可执行:java -jar HelloWorld-0.0.1-SNAPSHOT.jar
5.m2eclipse
1)新建Maven项目
new—>project…—>maven—>Maven Project
选择archetype(maven-archetype-quickstart)—>Next—>填gav—>Finish
2)运行
3)运行 mvn clean test
maven build