首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从GitLab CI/CD流水线阶段读取Maven?

如何从GitLab CI/CD流水线阶段读取Maven?
EN

Stack Overflow用户
提问于 2018-07-27 01:46:39
回答 1查看 2.1K关注 0票数 0

我有以下.gitlab-ci.yml文件,我想利用Maven POM来获取工件版本,并在调用Artifactory REST API时使用它。

代码语言:javascript
复制
image: maven:3-jdk-8

stages:
- build
- test
- quality-scan
- quality-gate
- publish

before_script:
  - echo "Start of CI/CD Pipeline"

Build:
  stage: build
  tags: 
    - maven
  artifacts:
    paths:
      - target/
  script:
    - echo "Cleaning workspace, compiling and packaging the application"
    - mvn clean package -DskipTests

RunTests:
  stage: test
  tags: 
    - maven
  script:
    - echo "Running tests"
    - mvn test

StaticCodeAnalysis:
  stage: quality-scan
  tags: 
    - maven
  dependencies:
    - Build
  script:
    - echo "Running SonarQube analysis"
    - mvn sonar:sonar -Dsonar.host.url=$SONARQUBE_URL

QualityGateCheck:
  stage: quality-gate
  tags: 
    - maven
  script:
    - echo "Checking Quality Gate"

PublishBinary:
  stage: publish
  tags: 
    - maven
  dependencies:
    - Build
  script:
    - echo "Publishing to Artifactory"
    - export PROJECT_VERSION=mvn -o help:evaluate 
    - export ARTIFACTORY_PUBLISH_LOCATION="$ARTIFACTORY_URL/libs-release-local/$CI_PROJECT_PATH/$PROJECT_VERSION/$CI_PROJECT_NAME-$PROJECT-VERSION.jar"
    - echo $ARTIFACTORY_PUBLISH_LOCATION
    - curl -u $ARTIFACTORY_USER:$ARTIFACTORY_PASSWORD -X PUT $ARTIFACTORY_PUBLISH_LOCATION -T $CI_PROJECT_NAME


after_script:
  - echo "End of CI/CD Pipeline"

在GitLab CI/CD中有没有一种简单的方法可以做到这一点?

我使用的是最新版本的GitLab和GitLab Runner。两者都在托管在Azure云中的Ubuntu上。

EN

回答 1

Stack Overflow用户

发布于 2019-03-26 22:49:20

不知道Gitlab是否可以提供这样的功能,但你也许可以使用Maven help plugin检索这些信息:

代码语言:javascript
复制
version=$(mvn org.apache.maven.plugins:maven-help-plugin:3.1.1:evaluate -Dexpression=project.version -q -DforceStdout)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51544761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档