• 一份最基础的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
    

    详细说明

    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测试报告。
  • 相关阅读:
    HR人才测评,什么是协调能力?如何提高协调能力?
    apache-maven-3.6.3-bin.zip下载
    docker 部署多个前端vue项目
    4种实用的制作URL 文件的方法
    什么是产品经理&&为什么说做好一款产品需要情怀?
    (区别、详解、使用)module.exports与exports,export与export default,import 与require
    2023年10月腾讯云优惠活动汇总:腾讯云最新优惠、代金券整理
    数字逻辑·时序线路分析【常见的时序线路】
    A Philosophy of Software Design读书笔记——定义复杂度
    人血清白蛋白修饰生物素HSA-Biotin;仅供科研实验用
  • 原文地址:https://blog.csdn.net/xhangs/article/details/139458473