1 Maven是跨平台的项目管理工具。主要服务于基于java平台的项目构建,依赖管理和项目信息管理。
| 项目构建 |
清理à编译à测试à报告à打包à部署 |
|
| 理想的项目构建: |
高度自动化 |
|
| 跨平台 |
||
| 可重用的组件 |
||
| 标准化的 |
||
| 依赖管理 |
工程的jar包的管理 |
|
| 要进行依赖管理的原因 |
自动下载 |
|
| 统一依赖管理 |
||
| 项目信息管理(包括) |
项目名称描述等 |
|
| 开发人员信息 |
||
| 开发者信息等 |
||
2 Maven的特点
| A拥有约定,知道你的代码在哪里,放到哪里去 |
| B拥有一个生命周期,例如执行mvn install就可以自动执行编译,测试,打包等构件过程。 |
| C只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情。 |
3 Maven约定
| A src/main/java –存放项目的.java文件 |
| B src/main/resources –存放项目资源文件,比如spring,hibernate配置文件 |
| C src/test/java –存放所有测试.java文件,比如JUnit测试类 |
| D src/test/resources ---测试资源文件 |
| E target ---项目输出位置,编译完成后的东西放到这里面 |
| F pom.xml |
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>cn.toto.maven</groupId> |
包名 |
| <artifactId>Hello</artifactId> |
项目中主类的名 |
| <version>0.0.1-SNAPSHOT</version> |
主类的版本 |
| <name>Hello</name> |
工程的名字 |
|
|
|
| <dependencies> |
项目依赖 |
| <dependency> |
依赖 |
| <groupId>junit</groupId> |
依赖的东西,表示依赖junit |
| <artifactId>junit</artifactId> |
|
| <version>4.9</version> |
|
| <scope>test</scope> |
|
| </dependency> |
|
| </dependencies> |
|
| </project> |
|
4新建一个Maven项目
在G:\maven下创建一个Hello项目
A Maven约定的目录结构,并实际创建:
| Hello --src ------main -------------java -------------resources ------test -------------java -------------resources --target --pom.xml |
B在项目Hello根目录建立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>cn.toto.maven</groupId> <artifactId>Hello</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Hello</name>
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency>
</dependencies> </project> |
C在src/main/java/cn/toto/maven目录下新建文件Hello.java
| package cn.toto.maven;
public class Hello {
public String sayHello(String name){
return "Hello "+name+"!";
}
} |
D在/src/test/java/cn/toto/maven目录下新建测试文件HelloTest.java
| package cn.toto.maven;
import org.junit.Test; import static junit.framework.Assert.*;
public class HelloTest {
@Test public void testHello(){
Hello hello = new Hello(); String results = hello.sayHello("litingwei"); assertEquals("Hello litingwei!",results);
}
}
|
E使用maven
| a) 打开cmd命令行,进入Hello项目根目录执行mvn compile命令,查看根目录变化
在连网的情况下,如果没有相应的依赖的jar,它会自动从网上下载
b) cmd中继续录入mvn clean命令,然后再次查看根目录变化(发现target目录不见了)
c)cmd中录入 mvn compile命令,查看根目录变化 d)cmd中录入 mvn test命令,查看根目录变化
e)cmd中录入 mvn package命令,查看根目录变化
|
