maven学习(三)

Maven 工程的认识 

Maven 工程的目录结构

作为一个 maven 工程,它的 src目录和 pom.xml 是必备的。 进入 src目录后,我们发现它里面的目录结构如下: 

  * src/main/java —— 存放项目的.java 文件

  * src/main/resources —— 存放项目资源文件,如 spring, hibernate 配置文件

  * src/test/java —— 存放所有单元测试.java 文件,如 JUnit 测试类

  * src/test/resources —— 测试资源文件

  * target —— 项目输出位置,编译后的class 文件会输出到此目录

  * pom.xml——maven 项目核心配置文件

 注意:如果是普通的 java 项目,那么就没有webapp 目录。 

Maven 工程的运行

进入 maven 工程目录(当前目录有 pom.xml 文件),运行 tomcat7:run 命令。

根据上边的提示信息,通过浏览器访问:http://localhost:8080/maven

Maven 常用命令 

我们可以在cmd 中通过一系列的 maven 命令来对我们的 maven-helloworld 工程进行编译、测试、运 行、打包、安装、部署。 

compile 

compile 是 maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target 目录下。

cmd 进入命令状态,执行mvn compile,如下图提示成功:

 ———编译后——> 

test 

test 是 maven 工程的测试命令  mvn test,会执行src/test/java下的单元测试类。

package

package 是 maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于web 工程打成war 包。 

clean 

clean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。 

install 

install 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。 从运行结果中,可以看出: 当后面的命令执行时,前面的操作过程也都会自动执行。如:install执行时,前面的操作(compile、test、package)都会自动执行一边。

Maven 指令的生命周期 

 maven 对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”, 这三套生命周期分别是: 


Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

Site Lifecycle 生成项目报告,站点,发布站点。

maven 的概念模型 

Maven 包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段 (phase)中插件(plugin)目标(goal)的逻辑。 

 * 项目对象模型 (Project Object Model) 一个 maven 工程都有一个 pom.xml 文件,通过 pom.xml 文件定义项目的坐标、项目依赖、项目信息、 插件目标等。 

* 依赖管理系统(Dependency Management System) 通过 maven 的依赖管理对项目所依赖的 jar 包进行统一管理。 比如:项目依赖 junit4.9,通过在 pom.xml 中定义 junit4.9 的依赖即使用 junit4.9,如下所示是 junit4.9 的依赖定义:

 <!-- 依赖关系 --> 
<dependencies> 
<!-- 此项目运行使用 junit,所以此项目依赖 junit --> 
    <dependency> 
          <!-- junit 的项目名称 -->    
          <groupId>junit</groupId>    
          <!-- junit 的模块名称 -->    
          <artifactId>junit</artifactId>    
          <!-- junit 版本 -->    
          <version>4.9</version>    
          <!-- 依赖范围:单元测试时使用 junit -->    
          <scope>test</scope>   
    </dependency> 
    。。。。。。。
</dependencies>          

* 一个项目生命周期(Project Lifecycle) 使用 maven 完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven 将这些 过程规范为一个生命周期,如下所示是生命周期的各各阶段:

 maven 通过执行一些简单命令即可实现上边生命周期的各个过程,比如执行 mvn compile 执行编译、 执行 mvn clean 执行清理。 

* 一组标准集合  maven将整个项目管理过程定义一组标准,比如:通过 maven 构建工程有标准的目录结构,有标准的生命周期阶段、依赖管理有标准的坐标定义等。 

* 插件(plugin)目标(goal) maven 管理项目生命周期过程都是基于插件完成的。 

原文地址:https://www.cnblogs.com/churujianghudezai/p/11967613.html