一份最基础的gitlab-ci文件,其中就maven的build和test

2024-06-06 07:20

本文主要是介绍一份最基础的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:# 这个作业所属的阶段是 buildstage: build# 该作业执行的脚本script:# 使用 Maven 进行构建,清理项目并安装依赖,但跳过测试- 'mvn clean install -B -DskipTests'# 指定要保存的工件,这些工件将在后续的作业中使用artifacts:# 保存目标目录中的所有 Jar 文件paths:- target/*.jar# 第二个作业:测试作业
test:# 这个作业所属的阶段是 teststage: test# 该作业执行的脚本script:# 使用 Maven 运行测试- 'mvn test'# 总是保存测试报告工件,即使测试失败artifacts:when: always# 保存目标目录中的 Surefire 测试报告paths:- target/surefire-reports

详细说明

  1. stages: 定义了流水线中的两个阶段:buildtest

    • build: 该阶段主要用于构建项目。
    • test: 该阶段主要用于运行测试。
  2. variables: 设置了Maven的环境变量。

    • MAVEN_OPTS: 定义了Maven的选项,将本地仓库设置到CI项目目录下的.m2/repository,以避免每次构建都下载依赖。
  3. before_script: 定义了在所有作业之前运行的脚本。

    • echo $MAVEN_OPTS: 输出Maven选项,确保变量已正确设置。
    • mvn --version: 检查Maven版本,确保Maven已正确安装。
  4. build: 定义了构建作业。

    • stage: 指定该作业属于 build 阶段。
    • script: 运行的脚本命令。
      • mvn clean install -B -DskipTests: 使用Maven进行构建,清理项目并安装依赖,但跳过测试。-B 是无交互模式。
    • artifacts: 指定要保存的工件。
      • paths: 保存构建生成的Jar文件。
  5. test: 定义了测试作业。

    • stage: 指定该作业属于 test 阶段。
    • script: 运行的脚本命令。
      • mvn test: 使用Maven运行测试。
    • artifacts: 总是保存测试报告工件。
      • when: always: 总是保存,即使测试失败。
      • paths: 保存目标目录中的Surefire测试报告。

这篇关于一份最基础的gitlab-ci文件,其中就maven的build和test的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035444

相关文章

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

IDEA Maven提示:未解析的依赖项的问题及解决

《IDEAMaven提示:未解析的依赖项的问题及解决》:本文主要介绍IDEAMaven提示:未解析的依赖项的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录IDEA Maven提示:未解析的依编程赖项例如总结IDEA Maven提示:未解析的依赖项例如

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Maven中的profiles使用及说明

《Maven中的profiles使用及说明》:本文主要介绍Maven中的profiles使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录主要用途定义 Profiles示例:多环境配置激活 Profiles示例:资源过滤示例:依赖管理总结Maven 中的

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本