variables: # sonner scanner 安装目录 SCANNER_HOME : "/usr/local/sonar-scanner-4.6.2.2472-linux" # 扫描代码路径 SCAN_DIR : "src" # 制品目录 ARTIFACT_PATH : 'target/*.jar' # maven 仓库地址 MAVEN_REPO: /root/.m2/repository stages: - compile 编译: stage: compile tags: - test # interruptible 当新管道在同一分支上启动时,可以取消正在运行的作业。 interruptible: true # 是否允许失败,允许的话如果当前阶段运行失败还会继续执行下一个阶段 allow_failure: false # 运行脚本 script: - java -version - mvn -version # maven 编译 - mvn -Dmaven.repo.local=$MAVEN_REPO clean -U package -Dfile.encoding=UTF-8 -DskipTests=true # 代码扫描 - "$SCANNER_HOME/bin/sonar-scanner -Dsonar.projectKey=${CI_PROJECT_NAME} \ -Dsonar.projectName=${CI_PROJECT_NAME} \ -Dsonar.projectVersion=${CI_COMMIT_REF_NAME} \ -Dsonar.ws.timeout=30 \ -Dsonar.projectDescription=${CI_PROJECT_TITLE} \ -Dsonar.links.homepage=${CI_PROJECT_URL} \ -Dsonar.sources=${SCAN_DIR} \ -Dsonar.sourceEncoding=UTF-8 \ -Dsonar.java.binaries=target/classes \ -Dsonar.java.test.binaries=target/test-classes \ -Dsonar.java.surefire.report=target/surefire-reports \ -Dsonar.branch.name=${CI_COMMIT_REF_NAME}" - ls -lh target/ # Maven编译,所以会有Jar包产物,这里定义产物的过期时间 artifacts: name: $PROJECT expire_in: 1 days paths: - target/*.jar