maven详解-maven入门

这一节不用eclipse来创建maven项目,我们自己创建

Maven概念

maven详解-maven入门


maven安装

2.1

http://maven.apache.org/download.cgi下载

2.2

解压缩

我的在E:\tools\maven

maven详解-maven入门

2.3

配置环境变量

新建一个环境变量

maven详解-maven入门


在path环境变量中加一条

maven详解-maven入门

2.4

验证maven有没有配置成功

在cmd窗口中输入mvn –v

maven详解-maven入门

第一个例子

第一个例子我们全是自己手写,后面再用eclipse构建

3.1

Maven要求的目录结构

maven详解-maven入门

我们例子的包名为com.imaven.maven01.model

所以总的目录结构为

maven详解-maven入门

maven详解-maven入门


我们在src\main\java\com\imaven\maven01\model 目录下建一个HelloWorld.java

代码如下

[java] view plain copy
  1. package com.imaven.maven01.model;  
  2.   
  3. public class HelloWorld{  
  4.     public String sayHello(){  
  5.         return "Hello World!";  
  6.     }  
  7. }  


我们在 src\test\java\com\imaven\maven01\model目录下建一个HelloWorldTest.java

代码如下

[java] view plain copy
  1. package com.imaven.maven01.model;  
  2.   
  3. import org.junit.*;  
  4. import org.junit.Assert.*;  
  5.   
  6. public class HelloWorldTest{  
  7.     @Test  
  8.     public void testHello(){  
  9.         Assert.assertEquals("Hello World!",new HelloWorld().sayHello());  
  10.     }  
  11. }  


maven管理项目需要一个pom.xml的文件

我们创建一个pom.xml文件

内容如下

[html] view plain copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   
  5.   <groupId>com.imaven.maven01</groupId>  
  6.   <artifactId>maven01-model</artifactId>  
  7.   <version>0.0.1-SNAPSHOT</version>  
  8.   
  9.   <properties>  
  10.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  11.   </properties>  
  12.   
  13.   <dependencies>  
  14.     <dependency>  
  15.       <groupId>junit</groupId>  
  16.       <artifactId>junit</artifactId>  
  17.       <version>4.1</version>  
  18.     </dependency>  
  19.   </dependencies>  
  20. </project>  

前三行不用管,以后我们用eclipse创建maven项目的时候会自动生成

<groupId> 是我们的项目名字

<artifactId> 是我们具体的模块名字

<version> 项目版本

 

<dependency> </dependency>标签之间的东西就是我们依赖的库,maven会为我们自动管理

我们把pom.xml复制到src的同目录下

maven详解-maven入门


maven常用构建名字


4.1

mvn compile 编译项目

打开cmd窗口,进入pom.xml所在的目录输入mvn compile 编译项目

maven详解-maven入门

我们看到BUILD SUCCESS的时候就说明项目编译成功了


mvn compile 执行的时候就会自动下载项目所依赖的库


4.2

mvn test 运行测试用例


同样我们看到

maven详解-maven入门


4.3

mvn package 生成jar包


我们会看到在src目录下有一个target目录,下面会有个jar包

maven详解-maven入门


4.4

mvn clean 删除target


4.5

mvn install 安装jar包到本地仓库中

我们新建一个项目

目录结构如下

maven详解-maven入门

maven详解-maven入门


我们在maven根目录建立pom.xml文件

内容如下

[html] view plain copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   
  5.   <groupId>com.imaven.maven02</groupId>  
  6.   <artifactId>maven02-model02</artifactId>  
  7.   <version>0.0.1-SNAPSHOT</version>  
  8.   
  9.   <properties>  
  10.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  11.   </properties>  
  12.   
  13.   <dependencies>  
  14.     <dependency>  
  15.       <groupId>junit</groupId>  
  16.       <artifactId>junit</artifactId>  
  17.       <version>4.10</version>  
  18.     </dependency>  
  19.       
  20.   </dependencies>  
  21. </project>  


我们在 maven02\src\main\java\com\imaven\maven02\util目录下 新建一个文件Speak.java

代码如下

[java] view plain copy
  1. package com.imaven.maven02.util;  
  2.   
  3. import com.imaven.maven01.model.HelloWorld;  
  4.   
  5. public class Speak{  
  6.     public String sayHi(){  
  7.         return new HelloWorld().sayHello();  
  8.     }  
  9. }  

这里我们用到了maven01项目中的东西,所以需要导入项目一中的HelloWorld

import com.imaven.maven01.model.HelloWorld;



我们在 maven02\src\test\java\com\imaven\maven02\util目录下 新建一个文件SpeakTest.java

代码如下

[java] view plain copy
  1. package com.imaven.maven02.util;  
  2.   
  3. import org.junit.*;  
  4. import org.junit.Assert.*;  
  5.   
  6. public class SpeakTest{  
  7.     @Test  
  8.     public void testsayHi(){  
  9.         Assert.assertEquals("Hello World!",new Speak().sayHi());  
  10.     }  
  11. }  


我们在maven02目录下运行命令mvn compile

会发现报错

maven详解-maven入门

提示com.imaven.maven01.model不存在,这是因为我们没有把maven01 生成的jar放到maven的仓库中


仓库的概念后面再讲


我们进入maven01目录运行 mvn install命令就可以把maven01生成的jar放大仓库中

然后我们改一下Maven02中的pom.xml文件,加入maven01的坐标

maven详解-maven入门

坐标的概念我们后面再讲


然后我们在输入 mvn compile 成功


4.6

mvn archetype:generate 自动创建目录

用这个目录结构不用我们自己一个一个创建了

maven详解-maven入门