Java 构建系统笔记
Maven
Maven 常用参数及其说明
-B,--batch-mode 以批处理(batch)模式运行;
-f,--file <arg> 使用指定的POM文件替换当前POM文件
-U,--update-snapshots 强制更新releases、snapshots类型的插件或依赖库(否则maven一天只会更新一次snapshot依赖)
-o,--offline 运行offline模式,不联网进行依赖更新
-P,--activate-profiles <arg> 激活指定的profile文件列表(用逗号[,]隔开)
-q,--quiet 安静模式,只输出ERROR
-s,--settings <arg> 替换用户级别settings.xml文件(Alternate path for the user settings file)
-T,--threads <arg> Thread count, for instance 2.0C where C is core multiplied
-t,--toolchains <arg> Alternate path for the user toolchains file
跳过测试类
-Dmaven.test.skip=true
确保
-D参数前有空格
mvn clean package -D maven.test.skip=true
# 或者(更常见写法)
mvn clean package -Dmaven.test.skip=true
# 更常见的写法,不容易出错
mvn clean package -DskipTests
# 使用引号包裹参数(适用于特殊终端)
mvn clean package "-Dmaven.test.skip=true"
指定编码为 utf-8
-Dproject.build.sourceEncoding=UTF-8 -Dproject.reporting.outputEncoding=UTF-8 -Dfile.encoding=UTF-8
Profile
- 必选的 Profile 一般配置在
settings.xml中,始终激活; - 可选的 Profile 一般配置在
pom.xml中,持续集成时,根据不同环境激活不同的 Profile:
# 列出当前激活的Profile
mvn help:active-profiles
# 列出当前所有的 Profile
mvn help:all-profiles
指定 Jdk 版本
修改 D:\Maven\apache-maven-3.8.3\bin\mvn.cmd 脚本
在开始位置添加下面内容用于设置 JAVA_HOME 变量:
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_221
Cli 设置临时 JAVA_HOME 环境变量执行编译
-DskipTests:跳过编译阶段
$env:JAVA_HOME = "D:\00PackageManager\Scoop\apps\liberica11-full-jdk\current"
mvn clean package -DskipTests
使用高版本 Tomcat 启动
在命令行环境下,直接使用 mvn tomcat:run 启动时,tomcat 的版本默认为 6
如果需要使用高版本的 tomcat 进行启动时,使用 mvn tomcat7:run 进行启动
报错纪录
Mvn Package 提示 com.google.code.gson 不存在
在运行 mvn clean package 时出现了程序包 com.google.gson 不存在的问题。
解决办法
在 pom.xml 文件中添加以下内容来添加 com.google.gson 的依赖项:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>1.7.2</version>
</dependency>
再次运行 mvn clean package 命令即可。
No Compiler is provided in This Environment. Perhaps You Are Running on a JRE
解决办法 1:
不推荐,不方便快速切换 jdk
在 maven 目录 bin 目录下打开 mvn.cmd 文件在文件第一行输入 set JAVA_HOME=C:\Program Files\Java\jre1.8.0_151(此处为你的 Jdk 所在)
解决办法 2:
在命令行临时指定 JAVA_HOME:
set JAVA_HOME=D:\soft\elasticsearch-7.0.0\jdk