mvn compile
mvn test
mvn package
mvn clean
mvn install
mvn archetype:generate [-DgroupId=xxxx(组织名,公司网址的反写+项目名),-DartifactId=xxxxx(项目名-模块名),-Dversion=xxxxx(版本号),-Dpackage=xxxx(项目所在的包)]
clean 清理项目
pre-clean 执行清理前的工作
clean 清理上一次构件生成的所有文件
post-clean 执行清理后的工作
default构建项目
site 生成项目站点
pre-site 在生成项目站点前要完成的工作
size 生成项目的站点文档
post-site 生成站点后要完成的工作
site-deploy 发布生成的站点到服务器上
maven生命周期 clean,compile(编译),test(测试),package(打包,打包时依次执行编译和测试),install
依赖冲突原则:
1.短路优先:C依赖B,B依赖A,A和B都包含同一个不同版本的Jar,则取B的依赖版本
2.声明优先:C依赖A和B,A和B都包含同一个不同版本的Jar,谁先声明取谁的依赖版本
<?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">
<modelVersion>指定当前pom的版本</modelVersion>
<groupId>反写的公司网址+项目名</groupId>
<artifactId>项目名-模块名</artifactId>
<version>大版本号.分支版本号.小版本号-
SNAPSHOT(快照)
ALPHA(内测)
BETA(Beta公测)
RELEASE(稳定)
GA(正式发布)
</version>
<packaging>打包方式</packaging>
<name>项目名称</name>
<url>项目地址</url>
<description>项目描述</description>
<developers>开发人员列表</developers>
<licenses>许可证</licenses>
<organization>组织信息</organization>
<parent>
<!--父pom的坐标,这样子pom中的dependencies就可以不用写依赖了-->
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modules>
<!--模块列表(聚合使用)-->
<module>其他的模块</module>
</modules>
<properties>
<统一配置信息>版本/编码</统一配置信息>
</properties>
<dependencies>
<!--依赖列表-->
<dependency>
<groupId>反写的公司网址+项目名</groupId>
<artifactId>项目名-模块名</artifactId>
<version>版本</version>
<type>类型</type>
<scope>依赖范围
compile:默认的范围,编译测试运行都有效
provided:在编译和测试时有效 例如servlet-api
runtime:测试和运行时有效 例如jdbc
test:测试时有效 例如junit
system:与本机系统相关联
import:导入的范围,他只使用在dependencyManagement中,
表示从其他的pom中导入dependency的配置
</scope>
<!--设置依赖是否可选-->
<optional>默认false(继承),ture(必须显式引入)</optional>
<exclusions>
<!--排除依赖传递列表-->
<exclusion>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!--依赖管理-->
<dependencyManagement>
<dependencies>
<dependency>不会被加载,拱子模块继承</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>打包名称</finalName>
<!--插件列表-->
<plugins>
<plugin>
<groupId>反写的公司网址+项目名</groupId>
<artifactId>项目名-模块名</artifactId>
<version>版本</version>
</plugin>
</plugins>
</build>
</project>