一份最基础的gitlab-ci文件,其中就maven的build和test
说明的gitlab-ci.yml
文件,包含注释解释每个部分的功能:
# 定义流水线的各个阶段,包含两个阶段:build 和 test
stages:
- build
- test
# 设置Maven的环境变量,指定本地仓库位置
variables:
MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository"
# 在所有作业之前运行的脚本,主要用于设置和检查环境
before_script:
# 输出Maven选项,确保变量已正确设置
- 'echo $MAVEN_OPTS'
# 检查Maven版本,确保Maven已正确安装
- 'mvn --version'
# 第一个作业:构建作业
build:
# 这个作业所属的阶段是 build
stage: build
# 该作业执行的脚本
script:
# 使用 Maven 进行构建,清理项目并安装依赖,但跳过测试
- 'mvn clean install -B -DskipTests'
# 指定要保存的工件,这些工件将在后续的作业中使用
artifacts:
# 保存目标目录中的所有 Jar 文件
paths:
- target/*.jar
# 第二个作业:测试作业
test:
# 这个作业所属的阶段是 test
stage: test
# 该作业执行的脚本
script:
# 使用 Maven 运行测试
- 'mvn test'
# 总是保存测试报告工件,即使测试失败
artifacts:
when: always
# 保存目标目录中的 Surefire 测试报告
paths:
- target/surefire-reports
详细说明
stages: 定义了流水线中的两个阶段:
build
和test
。build
: 该阶段主要用于构建项目。test
: 该阶段主要用于运行测试。
variables: 设置了Maven的环境变量。
MAVEN_OPTS
: 定义了Maven的选项,将本地仓库设置到CI项目目录下的.m2/repository
,以避免每次构建都下载依赖。
before_script: 定义了在所有作业之前运行的脚本。
echo $MAVEN_OPTS
: 输出Maven选项,确保变量已正确设置。mvn --version
: 检查Maven版本,确保Maven已正确安装。
build: 定义了构建作业。
stage
: 指定该作业属于build
阶段。script
: 运行的脚本命令。mvn clean install -B -DskipTests
: 使用Maven进行构建,清理项目并安装依赖,但跳过测试。-B
是无交互模式。
artifacts
: 指定要保存的工件。paths
: 保存构建生成的Jar文件。
test: 定义了测试作业。
stage
: 指定该作业属于test
阶段。script
: 运行的脚本命令。mvn test
: 使用Maven运行测试。
artifacts
: 总是保存测试报告工件。when: always
: 总是保存,即使测试失败。paths
: 保存目标目录中的Surefire测试报告。