Maven构建与管理项目(一)
Maven的基本概念
Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。
1.1、项目构建
项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。
  

理想的项目构建是高度自动化,跨平台,可重用的组件,标准化的,使用maven就可以帮我们完成上述所说的项目构建过程。
1.2、依赖管理
依赖指的是jar包之间的相互依赖,比如我们搭建一个Struts2的开发框架时,光光有struts2-core-2.3.16.3.jar这个jar包是不行的,struts2-core-2.3.16.3.jar还依赖其它的jar包,依赖管理指的就是使用Maven来管理项目中使用到的jar包,Maven管理的方式就是“自动下载项目所需要的jar包,统一管理jar包之间的依赖关系”。
1.3、使用Maven的好处
Maven中使用约定,约定java源代码代码必须放在哪个目录下,编译好的java代码又必须放到哪个目录下,这些目录都有明确的约定。
Maven的每一个动作都拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程
只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮我们处理其他事情
使用Maven可以进行项目高度自动化构建,依赖管理(这是使用Maven最大的好处),仓库管理。
Maven下载
下载地址:http://maven.apache.org/download.cgi
  

  下载完成后,得到一个压缩包

,解压,可以看到maven的组成目录  

Maven目录分析
- bin:含有mvn运行的脚本
- boot:含有plexus-classworlds类加载器框架
- conf:含有settings.xml配置文件
- lib:含有Maven运行时所需要的java类库
- LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍
Maven安装
1、首先要确保电脑上已经安装了JDK(要jdk 1.6+的版本),配置好JDK的环境变量,使用如下的两个命令检查检查JDK安装的情况。
1 Echo %JAVA_HOME%
2 Java -version
2、对apache-maven-3.2.3-bin.zip进行解压缩
对apache-maven-3.2.3-bin.zip进行解压缩,例如解压到如下目录(解压目录最好不要有中文)
  

3、设置系统环境变量:MAVEN_HOME
  


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

%MAVEN_HOME%\bin代表的就是"E:\apache-maven-3.2.3\bin"目录
5、验证Maven安装是否成功
打开cmd窗口
  

输入"mvn –v"命令 查看Maven的相关信息,如下图所示:
  

能够出现这样的信息就说明Maven的安装已经成功了。
6、设置MAVEN_OPTS环境变量(可选配置)
由于Maven命令实际上是执行了Java命令,所以可以通过JAVA命令参数的方式来设置MAVEN运行参数。MAVEN_OPTS环境变量正是用于此用途
MAVEN_OPTS
-Xms128m -Xmx512m,分别设置JVM的最小和最大内存,如下图所示:
  

Maven的简单使用
Maven项目的目录约定
MavenProjectRoot(项目根目录)
    |----src
    |     |----main
    |     |         |----java ——存放项目的.java文件
    |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
    |     |----test
    |     |         |----java ——存放所有测试.java文件,如JUnit测试类
    |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
    |----target ——项目输出位置
    |----pom.xml ----用于标识该项目是一个Maven项目
手动创建Maven项目,使用Maven编译
1、创建项目根文件夹,例如Maven01
    

 
2、在Maven01文件夹中创建“pom.xml”文件,如下图所示:
  

pom.xml文件中的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<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">
    <!--所有的Maven项目都必须配置这四个配置项-->
    <modelVersion>4.0.0</modelVersion>
    <!--groupId指的是项目名的项目组,默认就是包名-->
    <groupId>cn.gacl.maven.hello</groupId>
    <!--artifactId指的是项目中的某一个模块,默认命名方式是"项目名-模块名"-->
    <artifactId>hello-first</artifactId>
    <!--version指的是版本,这里使用的是Maven的快照版本-->
    <version>SNAPSHOT-0.0.1</version>
</project>3.编写Java类文件,Maven项目规定,所有的*.java文件必须放在src目录下的main目录下的java目录中,在Maven01项目根目录中创建一个src目录,然后在src目录中创建main目录,在main目录中再创建java文件夹,如下图所示:
  

在java文件夹下创建一个Hello.java文件,如下图所示
  

在Hello.java文件中编写如下代码:
public class Hello{
     public static void main(String[] args){
         System.out.println("Hello Maven");
     }
 }4.使用Maven编译Hello.java,首先进入到项目根目录,然后使用命令”mvn compile”进行编译,如下图所示:


使用Maven编译完成之后,在项目根目录下会生成一个target文件夹,如下图所示:
  

打开target文件夹,可以看到里面有一个classes文件夹,如下图所示:
  

classes文件夹存放的就是编译成功后生成的.class文件,如下图所示:
  

5.使用"mvn clean"命令清除编译结果,也就是把编译生成的target文件夹删掉,如下图所示:

执行完"mvn clean"命令后,target文件夹就会被删除了。
修改从Maven中心仓库下载到本地的jar包的默认存储位置
从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表示当前登录系统的用户目录(如"C:\Users\gacl"),如下图所示


Jar包存放在这个位置不太好,我们希望能够自己定义下载下来的jar包的存放位置,因此我们可以自己设置下载到本地时的jar包的存放目录。
在“E:\”目录下创建一个“repository”文件夹

找到apache-maven-3.2.3\conf目录下的settings.xml文件,如下图所示:

编辑setting.xml文件,如下图所示

加上下面的代码
<localRepository>E:/repository</localRepository>
这样就可以把jar包下载到我们指定的E:/repository目录中了,如下图所示:
 

把jar包下载到本地的好处就是,当编译时,会优先从本地的jar包去找,如果本地存在,就直接拿来用,如果不存在,就从Maven的中心仓库去下载。如下图所示:
 

第一次执行"mvn compile"和"mvn clean"这两个命令时,Maven会去中央仓库下载需要的jar包,而第二次执行这两个命令时,由于所需的jar包已经在本地的仓库中存储,所以就可以直接拿来用了,这样就省去了去中央仓库下载jar包的时间。
Maven编码gbk的不可映射字符解决

解决这个问题的思路: 在maven的编译插件中声明正确的字符集编码编码——编译使用的字符集编码与代码文件使用的字符集编码一致!!
安装系统之后,一般中文系统默认字符集是GBK。我们安装的软件一般都继承使用操作系统的默认字符集。所以当在中文XP或者win7系统开发,在使用maven(mvn compile)编译项目的时候,就会出现“编码 gbk 的不可映射字符”: 这个是由于代码使用的UTF-8,而maven编译的时候使用的GBK的缘故。 可以通过修改项目的pom文件,可以告诉maven这个项目使用UTF-8编码来编译。在项目的pom.xml文件中添加下面的配置:
<!-- 指明编译源代码时使用的字符编码,maven编译的时候默认使用的GBK编码, 通过project.build.sourceEncoding属性设置字符编码,告诉maven这个项目使用UTF-8来编译 -->
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>或者在pom.xml的/project/build/plugins/下的编译插件声明 中加入下面的配置:
<encoding>utf8</encoding>即:
<plugin>
     <artifactId>maven-compiler-plugin</artifactId>
     <configuration>
          <source>1.6</source>
          <target>1.6</target>
          <!-- 指明编译源代码时使用的字符编码,
          maven编译的时候默认使用的GBK编码, 
            通过encoding属性设置字符编码,
            告诉maven这个项目使用UTF-8来编译 -->
         <encoding>utf8</encoding> 
     </configuration>
 </plugin>这两种方案都可以解决上述的问题,可以根据个人习惯来设置,如下图所示方式是采用配置<project.build.sourceEncoding>属性来指明编译采用的字符编码。

今天被这个问题折腾够久了,还好及时找到了解决办法,在此记录一下解决方案。
创建Maven项目
建立Hello项目
1、首先建立Hello项目,同时建立Maven约定的目录结构和pom.xml文件
    Hello
       | --src
       | -----main
       | ----------java
       | ----------resources
       | -----test
       | ---------java
       | ---------resources
       | --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>me.gacl.maven</groupId>
   <artifactId>Hello</artifactId>
   <version>0.0.1-SNAPSHOT</version>
    <name>Hello</name>
    
      <!--添加依赖的jar包-->
     <dependencies>
         <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
         <dependency>
            <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>4.9</version>
             <scope>test</scope>
         </dependency>        
         
</dependencies>
 </project>3、在src/main/java/me/gacl/maven目录下新建文件Hello.java
  

Hello.java的代码如下:
package me.gacl.maven;
 
 public class Hello {
     
     public String sayHello(String name){
         return "Hello "+name+"!";
     }
 }4、在/src/test/java/me/gacl/maven目录下新建测试文件HelloTest.java
  

HelloTest.java的代码如下:
package me.gacl.maven;
 //导入junit的包
 import org.junit.Test;
 import static junit.framework.Assert.*;
 
 public class HelloTest {
 
     @Test
     public void testHello(){
         Hello hello = new Hello();
         String results = hello.sayHello("gacl");
         assertEquals("Hello gacl!",results);        
     }
 }
使用Maven编译、清理、测试、打包项目
1、使用Maven编译项目,编译项目的命令是:"mvn compile"
打开cmd命令行,

进入Hello项目根目录执行"mvn compile"命令编译项目的java类

编译成功之后,可以看到hello项目的根目录下多了一个【target】文件夹,这个文件夹就是编译成功之后Maven帮我们生成的文件夹,如下图所示:
  

打开【target】文件夹,可以看到里面有一个【classes】文件夹,如下图所示:
  

【classes】文件夹中存放的就是Maven我们编译好的java类,如下图所示:
  

这就是使用Maven自动编译项目的过程。
2、使用Maven清理项目,清理项目的命令是:"mvn clean"
进入Hello项目根目录执行"mvn clean"命令清理项目,清理项目的过程就是把执行"mvn compile"命令编译项目时生成的target文件夹删掉,如下图所示:
  

3、使用Maven测试项目,测试项目的命令是:"mvn test"
进入Hello项目根目录执行"mvn test"命令测试项目,如下图所示:

测试成功之后,可以看到hello项目的根目录下多了一个【target】文件夹,这个文件夹就是测试成功之后Maven帮我们生成的文件夹,如下图所示:
  

打开【target】文件夹,可以看到里面有一个【classes】和【test-classes】文件夹,如下图所示:
  

也就是说,我们执行执行"mvn test"命令测试项目时,Maven先帮我们编译项目,然后再执行测试代码。
4、使用Maven打包项目,打包项目的命令是:"mvn package"
进入Hello项目根目录执行"mvn package"命令测试项目,如下图所示:
 

 

打包成功之后,可以看到hello项目的根目录下的【target】文件夹中多了一个Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是打包成功之后Maven帮我们生成的jar文件,如下图所示:
  

5、使用Maven部署项目,部署项目的命令是:"mvn install"
进入Hello项目根目录执行"mvn install"命令测试项目,如下图所示:
  

  

安装成功之后,首先会在hello项目的根目录下生成【target】文件夹,打开【target】文件夹,可以看到里面会有Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是安装成功之后Maven帮我们生成的jar文件,如下图所示:
  

除此之外,在我们存放Maven下载下来的jar包的仓库也会有一个Hello-0.0.1-SNAPSHOT.jar,所以Maven安装项目的过程,实际上就是把项目进行【清理】→【编译】→【测试】→【打包】,再把打包好的jar放到我们指定的存放jar包的Maven仓库中,如下图所示:
  

所以使用"mvn install"命令,就把maven构建项目的【清理】→【编译】→【测试】→【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是"mvn install",这个命令能够做的事情最多。
组合使用Maven的命令
maven的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的,常用的命令组合如下:
1、先清理再编译:"mvn clean compile",如下所示:
  

还有的就是"mvn clean test","mvn clean package","mvn clean install",这些组合命令都比较常用。
以上就是关于Maven构建项目的各个个过程演示。
在别的项目中使用通过Maven安装生成的项目的jar包
在上面,我们使用mvn install命令将hello这个项目打包成了Hello-0.0.1-SNAPSHOT.jar包并且发布到本地的maven仓库E:\repository\me\gacl\maven\Hello\0.0.1-SNAPSHOT中,下面我们来看看如何在别的项目中使用Hello-0.0.1-SNAPSHOT.jar
  1、新建HelloFriend项目,同时建立Maven约定的目录结构和pom.xml文件
     HelloFriend
         | --src
       | -----main
       | ----------java
       | ----------resources
       | -----test
       | ---------java
       | ---------resources
       | --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>me.gacl.maven</groupId>
   <artifactId>HelloFriend</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>HelloFriend</name>
   
     <!--添加依赖的jar包-->
     <dependencies>
         <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>4.9</version>
             <scope>test</scope>
         </dependency>
         <!--项目要使用到Hello的jar包,所以在这里添加Hello的jar包的依赖-->
         <dependency>
             <groupId>me.gacl.maven</groupId>
             <artifactId>Hello</artifactId>
             <version>0.0.1-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>    
     </dependencies>
 </project>3、在src/main/java/me/gacl/maven目录下新建文件HelloFriend.java,如下图所示:
 

HelloFriend.java的代码如下:
package me.gacl.maven;
 
 import me.gacl.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/me/gacl/maven目录下新建测试文件HelloFriendTest.java,如下图所示:
  

HelloFriendTest.java的代码如下:
package me.gacl.maven;
 
 import static junit.framework.Assert.assertEquals;
 import org.junit.Test;
 import me.gacl.maven.Hello;
  
  public class HelloFriendTest {
 
     @Test
     public void tesHelloFriend(){
         
         HelloFriend helloFriend = new HelloFriend();
         String results = helloFriend.sayHelloToFriend("gacl");
         assertEquals("Hello gacl! I am John",results);
     }
 }5、在HelloFriend目录下执行命令"mvn package"测试Hello-0.0.1-SNAPSHOT.jar里面的类是否引用成功,如下所示:

Maven构建项目
构建Jave项目
1.1、创建Jave Project
1、使用mvn archetype:generate命令,如下所示:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false2、使用mvn archetype:create命令,如下所示:
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false使用"mvn archetype:generate"命令和"mvn archetype:create"都可以创建项目,目前没有发现这两者的区别,唯一区别的地方就是发现使用"mvn archetype:generate"命令创建项目时要特别长的时间才能够将项目创建好,而使用"mvn archetype:create"命令则可以很快将项目创建出来。
使用"mvn archetype:create"命令创建一个java项目的过程如下图所示:

BUILD SUCCESS就表示项目构建成功,当在前用户目录下(即C:\Documents and Settings\Administrator)下构建了一个Java Project叫做myapp。
构建好的Java项目的目录结构如下:
  

可以看到,Maven帮我们创建的项目是一个标准的Maven项目,不过目前Maven只是帮我们生成了src/main/java(存放项目的源代码)和src/test/java(存放测试源代码)这两个目录,但实际项目开发中我们一般都会有配置文件,例如log4j.properties,所以我们还需要手动创建src/main/resources(存放项目开发中用到的配置文件,如存放log4j.properties等)和src/test/resources(存放测试时用到的配置文件),如下图所示:
  

然后我们就可以将创建好的myapp项目导入到Eclipse中进行开发了,如下图所示:
  

JavaProject的pom.xml文件说明
通过Maven构建的JavaProject,在项目的根目录下都会存在一个pom.xml文件,进入myapp目录,可以看到有一个pom.xml文件,这个文件是Maven的核心。如下图所示:

1、pom意思就是project object model。
2、pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。
3、pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的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>com.mycompany.app</groupId>
   <artifactId>myapp</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
 
   <name>myapp</name> 
  <url>http://maven.apache.org</url>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
 
   <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等
     <name>        项目的名称
     <url>          项目的地址
    <properties>    属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <dependencies>     构建项目依赖的jar
其中由groupId、artifactId和version唯一的确定了一个项目坐标
使用Maven编译-测试-打包-安装项目
编译
编译源程序,进入命令行,切换到myapp目录,执行命令:mvn clean compile,如下图所示:
  

编译成功,在myapp目录下多出一个target目录,target\classes里面存放的就是编译后的class文件,如下图所示:
  

测试
进入命令行,切换到myapp目录,执行命令:mvn clean test,如下图所示:
  

测试成功,在myapp\target目录下会有一个test-classes目录,存放的就是测试代码的class文件,如下图所示:
  

打包
进入命令行,切换到myapp目录,执行命令:mvn clean package,执行打包命令前,会先执行编译和测试命令,如下图所示:
  

  

构建成功后,会在target目录下生成myapp-1.0-SNAPSHOT.jar包,如下图所示:
  

安装
进入命令行,切换到my-app目录,执行命令:mvn clean install ,执行安装命令前,会先执行编译、测试、打包命令,如下图所示:
  

  

构建成功,就会将项目的jar包安装到本地仓库,如下图所示:
  

运行jar包
进入命令行,切换到myapp目录,执行命令:java -cp target\myapp-1.0-SNAPSHOT.jar com.mycompany.app.App,如下图所示:
  

构建JavaWeb项目
创建JavaWeb项目
1、使用mvn archetype:generate命令,如下所示
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false使用"mvn archetype:generate"命令创建一个javaWeb项目的过程如下图所示:
 

使用"mvn archetype:generate"命令创建一个javaWeb项目的时间非常长,要了40多秒,有时甚至会更久,不知道为啥。
2、使用mvn archetype:create命令,如下所示:
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myWebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false使用"mvn archetype:create"命令创建一个javaWeb项目的过程如下图所示:
 

使用"mvn archetype:create"命令创建一个javaWeb项目的时间非常快,几秒钟就可以了。
创建好的JavaWeb项目的目录结构如下:
 

创建好的JavaWeb项目中目前只有src/main/resources目录,因此还需要手动添加src/main/java、src/test/java、src/test/resources
如下图所示:
 

接着我们就可以将创建好的JavaWeb导入Eclipse中进行开发了,如下图所示:
 

使用Maven打包发布Web项目
Maven帮我们创建的JavaWeb项目是一个空的项目,只有一个index.jsp页面,我们使用Maven将Web项目打包发布运行。
在命令行切换到myWebApp目录,执行:mvn package,构建成功后,myWebApp目录目录下多了一个target目录,在这个目录下会打包成myWebApp目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了。如下图所示:
 

  

打包成功,在myWebApp\target目录下生成了一个myWebApp.war文件,如下图所示:
  

将myWebApp.war放到tomcat服务器中运行,如下图所示:
  

运行效果如下:
  

除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:
<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.mycompany.app</groupId>
   <artifactId>myWebApp</artifactId>
   <packaging>war</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>myWebApp Maven Webapp</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>
   <build>
     <finalName>myWebApp</finalName>
      <pluginManagement>
         <!--配置Jetty-->
           <plugins>
             <plugin>
              <groupId>org.mortbay.jetty</groupId>   
              <artifactId>maven-jetty-plugin</artifactId>
             </plugin>
           </plugins>
    </pluginManagement>
   </build>
 </project>打开命令行窗口,切换到myWebApp目录,然后执行:mvn jetty:run启动Jetty服务器,如下图所示:
 

 

接着就可以在8080端口上访问应用了。如下图所示:

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。
不得不说,Maven的确是一个很好的项目构建工具。掌握好Maven对于项目开发是非常有帮助的。










