跳至主要內容

Maven 自动化构建工具分享

Sunhb...大约 3 分钟项目分享mavenspringboot

Maven 自动化构建工具分享

本篇文章分享Maven的作用和自动化构建项目的常见方法,如clean,install,package等命令

原文:面试官问我maven package和install的区别open in new window

如有侵权,立即删除

1. Maven是什么

Maven是Apache软件基金会唯一维护的一款自动化构建工具,专注于服务Java平台的项目构建和依赖管理。

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

2. Maven的作用

  • 管理jar包之间的依赖关系
    • Maven 可以替我们自动的将当前 jar 包所依赖的其他所有 jar 包全部导入进来
  • 获取第三方jar包
    • Maven 提供了一个完全统一规范的 jar 包管理体系,只需要在项目中以坐标的方式依赖一个 jar 包,Maven 就会自动从中央仓库进行下载到本地仓库
  • 将项目拆分成多个工程模块
  • 构建项目(打包,编译等)

3. Maven 构建项目的主要环节

  • 清理(clean):删除以前的编译结果(删除target),为重新编译做好准备
  • 编译(compile):将Java 源程序编译为字节码文件,生成target目录。
  • 测试(test):针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性
  • 打包(package):将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应 war 包。package包含了compile命令的过程。
  • 安装(install):在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中。
  • 部署(deploy):将打包的结果部署到远程仓库或将 war 包部署到服务器上运行。

4. Maven 常用命令

mvn -version/-v 显示版本信息

mvn clean 清空生成的文件

mvn compile 编译

mvn test 编译并测试

mvn package 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件

mvn site 生成项目相关信息的网站

mvn clean compile 表示先运行清理之后运行编译,会将代码编译到target文件夹中

mvn clean package 运行清理和打包

mvn clean install 运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用

mvn clean deploy 运行清理和发布

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。

mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。

mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

提示

-DskipTests跟-Dmaven.test.skip=true的区别

  1. -DskipTests

不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。

  1. -Dmaven.test.skip=true

不执行测试用例,也不编译测试用例类。

一般建议使用第二种,直接忽略测试的编译,如下:

mvn clean package -Dmaven.test.skip=true
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.0.0-alpha.1