我想构建一个简单的 Maven 项目,我想使用 Gitlab CI 和 TBC 模板创建一个版本。
使用 Maven 模板,它就像一个魅力:
# included templates
include:
# Maven template
- remote: "https://gitlab.com/to-be-continuous/maven/-/raw/3.11/templates/gitlab-ci-maven.yml"
variables:
MAVEN_SETTINGS_FILE: $MAVEN_SETTINGS
GIT_PRIVATE_KEY: $GITLAB_CICD_DEPLOY_PRIVATE_KEY
MAVEN_DEPENDENCY_CHECK_ARGS: org.owasp:dependency-check-maven:aggregate -DretireJsAnalyzerEnabled=false -DassemblyAnalyzerEnabled=false -Dformats=HTML,JSON,XML -DnvdApiKey=$NVD_API_KEY
MAVEN_DEPLOY_ENABLED: "true"
MAVEN_DEPLOY_SNAPSHOT_WITH_SLUG_ENABLED: "true"
MAVEN_BUILD_ARGS: org.jacoco:jacoco-maven-plugin:prepare-agent verify site org.jacoco:jacoco-maven-plugin:report
MAVEN_DEPLOY_ARGS: deploy site:deploy -Dmaven.test.skip=true
部署会将工件上传到我们的 Nexus Maven 存储库。现在我想创建一个 Gitlab 版本。据我了解,这可以通过语义发布模板实现。但是maven模板的文档中是这么写的:
注意:mvn-release 作业将执行发布,因此您只需要语义发布信息作业。设置 SEMREL_RELEASE_DISABLED 变量,如下所示。”
要走什么路?使用语义发布和添加的 Maven 插件并使用语义发布进行发布,或者我可以结合 Maven 和语义发布模板来获取 Gitlab 发布吗?
此外,我不知道如何使用 Semantic-Release 模板配置 Gitlab 版本的资产。有人可以帮助我吗?
您是否询问 gitlab 项目页面上的发布条目?这不是由maven执行的。您需要专门的发布工作,例如:
publish release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
only:
- tags
script:
- echo "Publishing release."
needs:
- build
release:
tag_name: $CI_COMMIT_TAG
name: 'Release $CI_COMMIT_TAG'
description: 'Release $CI_COMMIT_TAG.'
assets:
links:
- name: 'jar'
url: '$DOWNLOAD_URL'
DOWNLOAD_URL
应指向所需位置,例如 Maven 中央或本地包。