Maven安装与配置

jopen 10年前

一. 什么是maven

Maven是跨平台的项目管理工具, 主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。

1. 高度自动化的项目构建

2. 自动下载jar包, 统一依赖管理

3. 管理项目名称, 开发人员信息等


二. 为什么使用maven

1. 使用IDE的缺点:

a.) 手工操作较多, 编译、测试、部署等工作都是独立的, 很难一步完成

b.) 每个人的IDE配置都不同, 很容易出现本地代码换个地方编译就出错等问题.


2. 使用ant的缺点:

a.) 没有一个约定的目录结构

b.) 必须明确让ant做什么, 什么时候做, 然后编译、打包

c.) 没有生命周期, 必须定义妙及其实现的任务序列

d.) 没有集成依赖管理


3. 使用maven的好处:

a.) 拥有约定的目录结构, 知道你的代码在哪里, 放到哪里去
b.) 拥有一个生命周期, 例如执行mvn install 就可以自动执行编译测试打包等构建过程
c.) 只需要定义一个pom.xml, 然后把源码放到默认的目录, maven会帮你处理其他事情
d.) 拥有依赖管理,仓库管理

20140630230604156.png

三. maven的安装

1. 检查jdk安装的情况(要1.6版本)
   echo %JAVA_HOME%
   Java -version
2. 对apache-maven-3.0.3-bin.zip进行解压缩, 例如解压到如下目录(解压目录最好不要有中文字)

20140630230239312.png

3. 设置系统环境变量, MAVEN_HOME

20140630230254718.png

4. 设置环境变量Path, 将%MAVEN_HOME%\bin加入Path中, 一定要注意要用分号; 与其他值隔开

20140630230320531.png

5. 验证安装是否成功, 打开cmd窗口, 敲入mvn –v 查看

20140630230336531.png


6. Maven安装目录分析

a.) bin:含有mvn运行的脚本
b.) boot:含有plexus-classworlds类加载器框架
c.) conf:含有settings.xml配置文件
d.) lib:含有Maven运行时所需要的java类库
e.) LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍


四. 第一个maven项目

1. 首先建立Hello项目同时建立Maven约定的目录结构
Hello
 |------src
          |------main
                   |------java  (存放项目的Java文件)
                   |------resources  (存放项目的资源文件, 如: spring, hibernate配置文件)
          |------test
                   |------java  (存放所有测试的Java文件, 如: JUnit测试类)
                   |------resources  (存放测试的资源文件)

 |------target  (项目编译后文件)
 |------pom.xml

2. 在项目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>com.zdp.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>  

3. 在src/main/java/com/zdp/maven目录下新建文件Hello.java

    package com.zdp.maven;        public class Hello {            public String sayHello(String name){                return "Hello "+name+"!";            }        }  

4. 在/src/test/java/com/zdp/maven目录下新建测试文件HelloTest.java

    package com.zdp.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);                   }        }  

5. 测试一下吧:

a.) 打开cmd命令行, 进入Hello项目根目录执行 mvn compile命令查看根目录变化
b.) cmd 中继续录入mvn clean命令然后再次查看根目录变化
c.) cmd 中录入mvn clean compile命令, 查看根目录变化
d.) cmd 中录入mvn clean test命令查看根目录变化
e.) cmd 中录入mvn clean package命令, 查看根目录变化

 

五. 第二个maven项目

1. 首先建立HelloFriend项目同时建立Maven约定的目录结构

HelloFriend

 |------src
          |------main
                   |------java  (存放项目的Java文件)
                   |------resources  (存放项目的资源文件, 如: spring, hibernate配置文件)
          |------test
                   |------java  (存放所有测试的Java文件, 如: JUnit测试类)
                   |------resources  (存放测试的资源文件)

 |------target  (项目编译后文件)
 |------pom.xml


2. 在项目HelloFriend根目录建立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.zdp.maven</groupId>      <artifactId>HelloFriend</artifactId>      <version>0.0.1-SNAPSHOT</version>      <name>HelloFriend</name>        <dependencies>            <dependency>                <groupId>junit</groupId>                <artifactId>junit</artifactId>                <version>4.9</version>                <scope>test</scope>            </dependency>                 <dependency>                <groupId>com.zdp.maven</groupId>                <artifactId>Hello</artifactId>                <version>0.0.1-SNAPSHOT</version>                <scope>compile</scope>            </dependency>             </dependencies>    </project>

 

3. 在src/main/java/com/zdp/maven目录下新建文件HelloFriend.java

    package com.zdp.maven;        import com.zdp.maven.Hello;        public class HelloFriend {            public String sayHelloToFriend(String name){                Hello hello = new Hello();                String str = hello.sayHello(name)+" I am "+this.getMyName();                System.out.println(str);                return str;            }            public String getMyName(){                return "John";            }        }  

4. 在/src/test/java/com/zdp/maven目录下新建测试文件HelloFriendTest.java
    package com.zdp.maven;        import static junit.framework.Assert.assertEquals;        import org.junit.Test;        import com.zdp.maven.Hello;        public class HelloFriendTest {            @Test            public void tesHelloFriend(){                HelloFriend helloFriend = new HelloFriend();                String results = helloFriend.sayHelloToFriend("litingwei");                assertEquals("Hello litingwei! I am John",results);                 }        }  

5. 在HelloFriend目录下执行命令mvn package, 系统报错说没有找到依赖

6. 需要重新构建Hello第一个项目并安装到数据仓库, 在命令行Hello根目录下执行mvn clean install

7. 重新在HelloFriend目录下执行命令mvn package

来自:http://blog.csdn.net/zdp072/article/details/36057201