Skip to main content

Maven的用法

命令

mvn -v            查看版本
mvn -compile 编译
mvn test 测试
mvn package 打包
mvn clean 删除target
mvn install 安装jar包到本地仓库中

mvn archetype:generate 创建目录骨架

maven 的生命周期

完整的项目构建过程包括: 清理、编译、测试、打包、集成测试、验证、部署

  • clean 清理项目
    • pre-clean 执行清理前的工作
    • claen 清理上一次构建生成的所有文件
    • post-clean 执行清理后的文件
  • default 构建项目
    • compile
    • test
    • package
    • install
  • site 生成项目站点
    • pre-site 在生成项目站点前要完成的工作
    • site 生成项目的站点文档
    • post-site 在生成项目站点后要完成的工作
    • site-deploy 发布生成的站点到服务器上

Pom.xml 的解析

<?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">
<!-- 指定了当前pom的版本 -->
<modelVersion>4.0.0</modelVersion>


<groupId>反写的公司网址+项目名</groupId>
<artifactId>项目名+模块名</artifactId>
<!--
第一个0表示大版本号
第二个0表示分支版本号
第三个0表示小版本号
snapshot快照
alpha 内部测试
beta 公测
Release 稳定
GA 正式发布
-->
<version>0.0.1版本号</version>
<!-- 打包方式默认是jar 还可以打包成 war zip pom 格式-->
<packaging>打包方式</packaging>
<name>项目描述名</name>
<url>项目地址</url>
<description>项目描述</description>
<developers>开发人员列表</developers>
<licenses>许可证信息</licenses>
<organization>组织信息</organization>

<!-- 依赖列表-->
<dependencies>
<!-- 依赖项-->
<dependency>
<!-- 坐标信息-->
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<!-- 依赖范围 有六种 compile provided runtime test system import -->
<scope>依赖范围</scope>
<optional>依赖是否可选</optional>
<!-- 排除依赖传递列表-->
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!-- 依赖的管理-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<!-- 插件列表-->
<plugins>
<plugin>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</plugin>
</plugins>

</build>
<!-- 子模块对父模块的继承 -->
<parent></parent>
<!-- 指定多个模块 聚合时候使用-->
<modules>
<module></module>
</modules>
<!-- -->

</project>