Maven学习3-使用Maven构建项目

转自:http://www.cnblogs.com/xdp-gacl/p/4240930.html

maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的过程。

一、构建Jave项目

1.1、创建Jave Project

  1、使用mvn archetype:generate命令,如下所示:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

  2、使用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中进行开发了,如下图所示:

  

1.2、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文件的内容如下:

 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.mycompany.app</groupId>
 6   <artifactId>myapp</artifactId>
 7   <version>1.0-SNAPSHOT</version>
 8   <packaging>jar</packaging>
 9
10   <name>myapp</name>
11   <url>http://maven.apache.org</url>
12
13   <properties>
14     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15   </properties>
16
17   <dependencies>
18     <dependency>
19       <groupId>junit</groupId>
20       <artifactId>junit</artifactId>
21       <version>3.8.1</version>
22       <scope>test</scope>
23     </dependency>
24   </dependencies>
25 </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唯一的确定了一个项目坐标

1.3、使用Maven编译-测试-打包-安装项目

1.3.1、编译

  编译源程序,进入命令行,切换到myapp目录,执行命令:mvn clean compile,如下图所示:

  

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

  

1.3.2、测试

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

  

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

  

1.3.3、打包

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

  

  

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

  

1.3.4、安装

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

  

  

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

  

1.3.5、运行jar包

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

  

二、构建JavaWeb项目

2.1、创建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中进行开发了,如下图所示:

  

2.2、使用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插件,如下:

 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/maven-v4_0_0.xsd">
 3   <modelVersion>4.0.0</modelVersion>
 4   <groupId>com.mycompany.app</groupId>
 5   <artifactId>myWebApp</artifactId>
 6   <packaging>war</packaging>
 7   <version>1.0-SNAPSHOT</version>
 8   <name>myWebApp Maven Webapp</name>
 9   <url>http://maven.apache.org</url>
10   <dependencies>
11     <dependency>
12       <groupId>junit</groupId>
13       <artifactId>junit</artifactId>
14       <version>3.8.1</version>
15       <scope>test</scope>
16     </dependency>
17   </dependencies>
18   <build>
19     <finalName>myWebApp</finalName>
20      <pluginManagement>
21         <!--配置Jetty-->
22           <plugins>
23             <plugin>
24              <groupId>org.mortbay.jetty</groupId>
25              <artifactId>maven-jetty-plugin</artifactId>
26             </plugin>
27           </plugins>
28     </pluginManagement>
29   </build>
30 </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-quickstartmaven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project。

  不得不说,Maven的确是一个很好的项目构建工具。掌握好Maven对于项目开发是非常有帮助的。

时间: 2024-11-10 00:19:14

Maven学习3-使用Maven构建项目的相关文章

Maven学习总结(二)——Maven项目构建过程练习

Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建立Hello项目 1.首先建立Hello项目,同时建立Maven约定的目录结构和pom.xml文件 Hello | --src | -----main | ----------java | ----------resources | -----test | ---------java | -----

maven 学习1 -安装maven 并执行编译命令

一.maven 下载与安装(安装好jdk的前提下) 1.下载地址:http://maven.apache.org/download.cgi  (选择最新的zip版本),下载完毕后解压 2.安装:系统path变量后面加maven的bin路径,也可配置MAVEN_HOME系统变量(%MAVEN_HOME%\bin)来操作 3.运行cmd命令来查看安装情况 mvn-v 二.手动新建一个maven项目,使用maven编译 (maven项目关键就在与pom.xml文件) 1.建立项目目录,新建一个文件夹(

Maven学习总结(一)——Maven入门——转载

一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1.项目构建 项目构建过程包括[清理项目]→[编译项目]→[测试项目]→[生成测试报告]→[打包项目]→[部署项目]这几个步骤,这六个步骤就是一个项目的完整构建过程. 理想的项目构建是高度自动化,跨平台,可重用的组件,标准化的,使用maven就可以帮我们完成上述所说的项目构建过程. 1.2.依赖管理 依赖指的是j

Maven学习随笔二——Maven初始配置

到现在为止,我对maven的理解是,跟svn差不多,帮我们管理项目的工具,到底是不是这样,拭目以待!! 弱弱解释,svn是什么? 简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容.并且自动的赋予每次的变更一个版本. 说这么多废话,我接触到的svn作用如下: 1. 本地新建空文件夹,通过右击svn绑在鼠标右键菜单的checkout来从服务器把代码拿下来: 2. eclipse上也可以做同样的操作,调出svn窗口配置好即可拿代码: 3. eclips

(转)Maven学习总结(一)——Maven入门

备注 转自: 孤傲苍狼 http://www.cnblogs.com/xdp-gacl/p/3498271.html 只为成功找方法,不为失败找借口! 1. Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1.项目构建 项目构建过程包括[清理项目]→[编译项目]→[测试项目]→[生成测试报告]→[打包项目]→[部署项目]这几个步骤,这六个步骤就是一个项目的完整构建

maven 学习---部署基于Maven的war文件到Tomcat

在本教程中,我们将学习如何使用Maven的Tomcat插件打包并部署一个WAR文件到Tomcat(Tomcat的6和7. 要用到工具: Maven 3 Tomcat 6.0.37 Tomcat 7.0.53 Tomcat 7发布URL = http://localhost:8080/manager/text命令 = mvn tomcat7:deploy Tomcat 6发布 URL = http://localhost:8080/manager/命令 = mvn tomcat6:deploy 1

Maven学习 (一) 搭建Maven环境

有两种方式可以配置maven的环境配置,本人推荐使用第二种,即使用本地的maven安装文件,个人感觉这样可以方便管理下载jar包的存放位置,错误信息的输出等,可以在dos窗口中可以清晰看到,虽然比较麻烦,每次都要敲dos命令,但可以写批处理文件来解决. 方式一:不使用本地的maven安装文件环境配置(也即使用的是m2eclipse插件的默认配置) settings.xml设置localRepository如下代码所示:(地址可以自定义) 1 <localRepository>D:/Develo

Maven学习8-使用Maven构建多模块项目

在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层).dao(数据库访问 层).service(业务逻辑层).web(表现层),这样分层之后,各个层之间的职责会比较明确,后期维护起来也相对比较容易,今天我们就是使用 Maven来构建以上的各个层. 项目结构如下: system-parent     |----pom.xml     |----system-domain         |----pom.xml     |----sy

maven 学习---生成基于Maven的项目文档站点

在Maven中,可以使用“mvn site”,为您的项目信息生成文档站点. mvn site 生成的网站是在项目的“target/site”文件夹中. mvn site 示例 请参见通过“mvn site”命令生成的文件列表. 文档页面的样本如下. 想知道自己开发的项目的信息可以试试. 标签:Maven    项目    文档    站点 本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程转载请注明:文章转载自:http://www.yii