常用命令:
先切换到项目的目录
mvn clean compile package 可以同时执行多个命令
注意:
所有命令都要跟在mvn的后面,如:mvn clean
所有的命令都必须在某个项目的根目录下
多个命令可以一起执行
maven web项目的约定结构目录如下:
maven java项目的约定结构目录如下:
maven生命周期
一个项目的构建build的过程通常包括:清理,编译,测试,打包,集成测试,部署等
Maven定义了三套生命周期:clean , default , site
每个生命周期之间是互相独立的,每个生命周期内都包含多个阶段,这些阶段是由顺序的,后续的阶段必须等待前面的阶段执行后才能执行
default的生命周期包含:compile , test ,package.
pom.xml文件
一:简介:pom ( project object model ) 项目对象模型
pom.xml是maven的核心配置文件
一个maven项目有且仅有一个pom.xml文件,该文件必须在项目的根目录下。
二:坐标:
**2.1什么是坐标**
用来唯一的标识每个标识,必须为项目定义坐标,坐标必须唯一。
目的是为了让其他Maven项目可以使用该项目生成的jar包
2.2坐标详解
Maven坐标是通过一些元素来定义的,groupId,artifactId,version
<!-- 坐标:
artifactId:模块id,表示的就是当前模块的名字
groupId:组织id,表示当前模块所属的项目一般为公司名的倒序来命名
version:当前的版本
-->
<artifactId>com.servlet</artifactId>
<groupId>Servlet</groupId>
<version>1.0-SNAPSHOT</version>
3:dependency
**3.1基本配置**
如何查找一个jar坐标
maven常用仓库地址
https://mvnrepository.com/ https://search.maven.org/ https://maven.aliyun.com/mvn/view
3.2scope作用域:
表示依赖的作用域,用来配置依赖的的jar包可使用的范围
4 peoperties
全局属性,一般情况下用于定义全局的jar包版本
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<javax.servlet-api.version>3.1.0</javax.servlet-api.version>
<javax.servlet.jsp-api.version>2.3.1</javax.servlet.jsp-api.version>
<jstl.version>${javex_jstl.version}</jstl.version>
<taglibs-standard-impl.version>1.${servlet-api.version}</taglibs-standard-impl.version>
<standard.version>1.${javex_jstl.version}</standard.version>
<servlet-api.version>2.5</servlet-api.version>
<javex_jstl.version>1.2</javex_jstl.version>
</properties>
5:repositories
用来配置当前工程使用的远程仓库
依赖查询顺序,本地仓库------>当前工程pom.xml配置的远程仓库--------->setting.xml中配置的远程仓库
<repositories>
<repository>
<id>spring_repo</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
6 plugins
配置插件,是一种工具
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>${javax.servlet-api.version}</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>${servlet-api.version}.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
7:超级POM
所有的pom.xml文件都继承了一个父pom文件,这个父pom称为超级POM(Super POM,Effective Pom)