`
jaesonchen
  • 浏览: 313316 次
  • 来自: ...
社区版块
存档分类
最新评论

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:create在3.0版本以上被废弃,使用会出现构建错误

 使用"mvn archetype:generate"命令创建一个java项目的过程如下图所示:

  

 

 

  BUILD SUCCESS就表示项目构建成功,在当前目录下构建了一个Java Project叫做hello-world。

  构建好的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"
   	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.jaeson.maven</groupId>
 6   <artifactId>hello-world</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目录下生成hello-world-1.0-SNAPSHOT.jar包,如下图所示:

1.3.4、安装

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

  

  构建成功,就会将项目的jar包安装到本地仓库。

1.3.5、运行jar包

  进入命令行,切换到myapp目录,执行命令:java -cp target\hello-world-1.0-SNAPSHOT.jar com.jaeson.maven.App。

  

二、构建JavaWeb项目

2.1、创建JavaWeb项目

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

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myWebApp 

-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

  使用"mvn archetype:generate"命令创建一个javaWeb项目。 

  

  创建好的JavaWeb项目的目录结构如下:

  

 

  创建好的JavaWeb项目中目前只有src/main/resources目录,因此还需要手动添加src/main/javasrc/test/javasrc/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服务器中运行,如下图所示:

  

 

三、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对于项目开发是非常有帮助的。

 

四、将Web项目自动部署到tomcat服务器

4.1、在pom.xml文件中配置tomcat服务器

  配置web项目的pom.xml文件,配置如下:

 
 1 <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">
 3   <modelVersion>4.0.0</modelVersion>
 4   <groupId>com.jaeson.maven</groupId>
 5   <artifactId>WebProject</artifactId>
 6   <packaging>war</packaging>
 7   <version>0.0.1-SNAPSHOT</version>
 8   <name>WebProject 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   
19   <!-- 将Web项目自动部署到tomcat服务器的相关 配置信息-->
20   <build>
21     <!-- 将WebProject项目打包成WebProject.war自动部署到tomcat服务器的webapps目录下面 -->
22     <finalName>WebProject</finalName>
23     <plugins>
24           <plugin>
25               <groupId>org.codehaus.cargo</groupId>
26               <artifactId>cargo-maven2-plugin</artifactId>
27                 <version>1.2.3</version>
28                 <configuration>
29                     <container>
30                         <!-- 指明使用的tomcat服务器版本 -->
31                         <containerId>tomcat7x</containerId>
32                         <!--指明tomcat服务器的安装目录 -->
33                         <home>D:/apache-tomcat-7.0.53</home>
34                     </container>
35                     <configuration>
36                         <type>existing</type>
37                         <!--指明tomcat服务器的安装目录 -->
38                         <home>D:/apache-tomcat-7.0.53</home>
39                     </configuration>
40                 </configuration>
41                 <executions>  
42                   <execution>  
43                       <id>cargo-run</id>  
44                       <phase>install</phase>  
45                       <goals>  
46                           <goal>run</goal>  
47                       </goals>  
48                   </execution>  
49               </executions>
50           </plugin>
51       </plugins>
52   </build>
53 </project>
 

4.2、将web项目发布到tomca服务器的webapps目录

  选中Web项目(或者选中Web项目的pom.xml文件)→【Run As】→【Maven install】,如下图所示:

  

 

  执行完【Maven install】命令之后,就可以将WebProject项目打包成WebProject.war包发布到tomca服务器的webapps目录下,如下图所示:

  

 

  测试部署好的Web项目,如下图所示:

  

 

  浏览器正常输出了index.jsp页面中的内容,这说明我们的部署成功了。这就是在Eclipse中使用Maven将Web项目自动部署到tomcat服务器的过程。

 

 

 

 

 

 

 

 

  • 大小: 15.9 KB
  • 大小: 12.4 KB
  • 大小: 20.3 KB
  • 大小: 22.2 KB
  • 大小: 16.6 KB
  • 大小: 6.3 KB
  • 大小: 3.4 KB
  • 大小: 14.1 KB
  • 大小: 18.9 KB
  • 大小: 6 KB
  • 大小: 15.3 KB
  • 大小: 21.1 KB
  • 大小: 8.6 KB
  • 大小: 13.8 KB
  • 大小: 39.2 KB
  • 大小: 53.3 KB
  • 大小: 40.5 KB
  • 大小: 50.8 KB
分享到:
评论

相关推荐

    maven多模块web项目

    【标签】"maven web"表明该项目是一个使用Maven构建的Web应用程序。Maven通过POM(Project Object Model)文件来管理项目,POM中包含了项目的配置信息、依赖关系和构建指令。对于Web项目,Maven会遵循特定的目录结构...

    项目管理与SSM框架——Maven学习与案例练习

    Maven是一个强大的项目管理工具,尤其在Java开发领域中广泛使用,它简化了项目的构建、依赖管理和项目打包的过程。Maven的核心理念是通过Project Object Model(POM)来描述项目,并利用中央仓库来管理各种依赖。 1...

    Maven实战——入门篇

    3. **标准化构建过程**:使用Maven可以标准化不同项目的构建流程,简化学习曲线。 4. **依赖管理**:Maven提供了一个中央仓库,可以方便地管理项目的外部依赖。 5. **项目信息管理**:Maven还能帮助管理和维护项目...

    Maven 教程:基础篇-尚硅谷学习笔记 2022年

    **Maven教程:基础篇——尚硅谷学习笔记 2022年** Maven是一个强大的Java项目管理和构建工具,由Apache软件基金会开发。它通过提供一个标准的项目对象模型(Project Object Model,POM)来简化项目的构建过程,并...

    nexus构建maven仓库总结(完善版3),添加了对第三方插件的处理和应用

    【标题】:“Nexus构建Maven仓库总结(完善版3)——第三方插件处理与应用” 在软件开发中,管理依赖关系是至关重要的,而Maven作为Java领域广泛使用的构建工具,通过其中央仓库帮助开发者方便地获取所需依赖。然而...

    项目构建maven

    Maven是由Apache软件基金会开发的项目管理和综合工具,它通过使用一种标准化的项目对象模型(Project Object Model,POM)来管理项目的构建、报告和文档。Maven的核心理念是“约定优于配置”,这意味着它有一套默认...

    Maven学习资源打包汇总

    在学习这些资料时,首先要理解Maven的核心理念——“约定优于配置”,这意味着Maven提供了一套标准的项目结构和默认的构建流程。其次,深入学习POM.xml文件,它是Maven项目的中心,包含了项目信息、依赖、构建配置等...

    Spring in Action 使用Maven 构建Spring 工程

    在Maven构建的Spring工程中,我们会在`pom.xml`文件中声明项目所需的依赖,Spring框架以及其他的第三方库。Maven会自动下载这些依赖并将其组织到类路径中,确保在运行时能够正确加载。 接下来,让我们探讨如何配置...

    maven项目+mybatis

    2. **生命周期与插件:** Maven有三个主要的生命周期阶段——clean、default和install。default生命周期包括编译、测试、打包、验证等步骤。Maven通过插件机制扩展功能,如编译插件(maven-compiler-plugin)、测试...

    apache-maven-3.3.9版本.zip

    2. **Maven的构建生命周期**:Maven有三个主要的生命周期阶段——clean、default和site。clean用于清理项目,default用于构建项目(包括编译、测试、打包、部署等),site则用于生成项目文档。 3. **插件系统**:...

    maven学习文档

    ### Maven学习文档知识点详解 #### 一、Maven概述与安装目录介绍 Maven是一款流行的自动化构建工具,广泛应用于Java项目的构建过程中。它通过一种项目对象模型(Project Object Model,简称POM)来管理项目的构建...

    Maven权威指南,学习参考手册

    #### 引言:Maven——自动化构建与项目管理的利器 《Maven权威指南》是一部详尽解读Apache Maven的书籍,由Tim O'Brien、John Casey、Brian Fox、Bruce Snyder、Jason Van Zyl和Juven Xu等多位来自Sonatype Inc.的...

    Maven3实战笔记08Maven反应堆

    ### Maven3实战笔记08——Maven反应堆:深度解析与实战应用 #### Maven反应堆的概念与作用 在深入探讨Maven反应堆之前,我们首先需要理解Maven项目是如何组织和构建的。Maven是一种自动化构建工具,它通过定义项目...

    Maven兼容jdk1.7版本

    【标题】"Maven兼容jdk1.7版本"指出的核心知识点是关于Apache Maven的一个特定版本——3.0.5,这个版本与Java Development Kit (JDK) 1.7(也称为Java 7)有着良好的兼容性。在软件开发过程中,构建工具如Maven与...

    手动创建maven工程

    5. **理解和使用生命周期**:Maven有一套预定义的构建生命周期,包括clean、default和site三个阶段。每个阶段包含多个目标(phase),如compile、test、install等,这些目标按照特定顺序执行。 6. **插件管理**:...

    maven基础学习(四)-简单实例(使用Archetype生成项目骨架)

    本教程将深入探讨“Maven基础学习”的第四部分——如何使用Archetype来生成项目骨架,帮助初学者快速搭建项目结构。 一、Maven Archetype简介 Archetype是Maven的一种功能,用于创建项目的初始模板或骨架。它定义了...

    持续集成环境搭建——maven、git、jenkins、tomcat

    接着,我们来安装构建工具——maven。Apache Maven是一个项目管理和综合工具,它可以帮助开发者管理项目构建、报告、依赖关系等。以下是maven的安装步骤: 1. 访问Apache官网...

    Maven 多项目依赖关系

    每个Maven项目都有一个核心配置文件——`pom.xml`,它定义了项目的元数据,包括项目名称、版本、描述、开发者信息以及项目依赖。在多项目环境中,`pom.xml`文件还负责声明其他子项目或外部库的依赖关系。 二、模块...

    maven 中引入依赖的包

    在Java开发领域,Maven是一个不可或缺的构建工具,它通过管理项目依赖关系,简化了项目的构建、测试和部署过程。本文将深入探讨如何在Maven项目中引入依赖的包,并结合相关源码和工具,帮助开发者更好地理解和使用这...

Global site tag (gtag.js) - Google Analytics