* maven构建过程
* 建立maven2项目,同时建立Maven约定的目录结构和pom.xml文件
maven2
| --src
| -----main
| ----------java
| ----------resources
| -----test
| ---------java
| ---------resources
| --pom.xml
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hx.maven.hello</groupId>
<artifactId>maven2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>hellomaven</name>
<!--添加依赖的jar包-->
<dependencies>
<!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
public class Person {
public String sayHello(String name){
return "Hello "+name+"!";
}
}
public class PersonTest {
@Test
public void testHello(){
Person person = new Person();
String results = person.sayHello("xiaohei");
System.out.println(results);
}
}
* 命令组合使用
mvn clean compile
mvn clean test
mvn clean package
mvn clean install
* 使用自己在maven生成的jar
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hx.maven.hello3</groupId>
<artifactId>maven3</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>maven3</name>
<!--添加依赖的jar包-->
<dependencies>
<!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.hx.maven.hello</groupId>
<artifactId>maven2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
public class HelloPerson {
public String sayHelloToPerson(String name){
Person person = new Person();
String str = person.sayHello(name)+" I am "+this.getMyName();
System.out.println(str);
return str;
}
public String getMyName(){
return "John";
}
}
public class HelloPersonTest {
@Test
public void testHelloPerson(){
HelloPerson helloPerson = new HelloPerson();
String results = helloPerson.sayHelloToPerson("xiaohei");
System.out.println(results);
}
}
* 构建项目
* java 的项目
mvn archetype:generate -DgroupId=com.hx.maven.shopping -DartifactId=shopping -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn archetype:generate -DgroupId=com.hx.maven.tourise -DartifactId=tourise -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn archetype:create 这个命令在maven 3.02以上的版本已经不用了, 用generate 命令代替
1、pom意思就是project object model。
2、pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。
3、pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml
* 公共东西--commonmodule
* pom.xml
* loginmodule
* registermodule
* ...
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hx.maven.shopping</groupId>
<artifactId>shopping</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>shopping</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
pom.xml文件的节点元素说明:
<project> pom文件的顶级节点
<modelVersion> object model版本,对Maven2和Maven3来说,只能是4.0.0
<groupId> 项目创建组织的标识符,一般是域名的倒写
<artifactId> 定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
<version> 当前项目的版本,SNAPSHOT,表示是快照版本,在开发中
<packaging> 打包的方式,有jar、war、ear,pom等
<name> 项目的名称
<url> 项目的地址
<properties> 属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<dependencies> 构建项目依赖的jar
其中由groupId、artifactId和version唯一的确定了一个项目坐标
* 使用Maven构建JavaWeb项目
mvn archetype:generate -DgroupId=com.hx.web -DartifactId=hellweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
* Maven创建项目的命令说明
mvn archetype:create或者mvn archetype:generate 固定写法
-DgroupId 组织标识(包名)
-DartifactId 项目名称
-DarchetypeArtifactId 指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project
-DinteractiveMode 是否使用交互模式
archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:
maven-archetype-archetype
maven-archetype-j2ee-simple
maven-archetype-mojo
maven-archetype-portlet
maven-archetype-profiles (currently under development)
maven-archetype-quickstart
maven-archetype-simple (currently under development)
maven-archetype-site
maven-archetype-site-simple
maven-archetype-webapp
每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project。