下面是“多模块maven的deploy集成gitlab ci自动发版配置”的攻略:
1. 环境准备
首先,在进行操作前需要做好以下准备工作:
- 安装 Maven
- 确保所有子模块中的 pom.xml 文件都正确配置了
groupId
、artifactId
、以及version
。 - 安装 gitlab-runner 并注册到 GitLab 项目中。
2. GitLab CI/CD 配置
GitLab CI/CD 配置文件的名称必须为 .gitlab-ci.yml
。
下面是一个例子的 .gitlab-ci.yml
配置文件,该配置文件可以构建和发布多模块 Maven 项目:
stages:
- deploy
deploy:
stage: deploy
tags:
- runnerTag1
script:
- mvn clean package
- cp -r $CI_PROJECT_DIR/target/ $CI_PROJECT_DIR/artifacts
artifacts:
paths:
- artifacts/
only:
- master
配置说明
stages
:定义了构建过程的阶段。在本例中,我们仅定义了deploy
这一个阶段。tags
:定义了本作业所需的 runner 标签。可选,如果不配置 GitLab runner 标签,则将采用所有标签的 runner 运行该作业。script
:定义了作业的 shell 脚本命令。在这个例子中,我们通过 Maven 命令编译项目并将生成的 artifcats 复制到项目根目录下的artifacts
目录下。artifacts
:定义了应该把什么文件从构建产物中保存到 artifacts 中。在这个例子中,我们把整个artifacts
目录保存下来。only
:定义了只有在满足条件时该作业才会被执行。只当它是master
分支提交时才执行。
3. 发布阶段设置
上面的脚本仅是将项目打包,接下来我们需要将构建好的项目上传到 maven 服务器以供其他项目调用,同时也可以将构建后的项目上传到私有 maven 仓库以便进行部署。
配置 settings.xml 文件
在发布项目之前,需要在 Maven 中配置 settings.xml
文件。配置方式如下:
<servers>
<server>
<id>${mavenServerId}</id>
<username>${mavenServerUser}</username>
<password>${mavenServerPassword}</password>
</server>
</servers>
其中, id
是 Maven 配置文件中服务器的名称, username
和 password
是服务器的登录凭据。
配置项目 pom.xml 文件
在每个子模块的 pom.xml
文件中,添加以下 <distributionManagement>
配置信息,指定项目的上传目标:
<distributionManagement>
<repository>
<id>${mavenServerId}</id>
<name>${mavenServerName}</name>
<url>${mavenServerUrl}</url>
</repository>
</distributionManagement>
其中, id
和 url
分别指定了要上传到的服务器的名称和地址。
配置 GitLab CI/CD 文件
在 .gitlab-ci.yml
配置文件中,添加以下内容:
stages:
- deploy
deploy:
stage: deploy
script:
- mvn -B clean package -DskipTests=true -s settings.xml deploy
only:
- master
在 script
部分,我们加入了 Maven 的 -s
参数,用于指定 settings.xml
的位置,然后加入了 deploy
命令,用于把项目上传到服务器。
演示例子
下面是一个简单的例子说明如何使用 GitLab CI/CD 自动构建和部署多模块 Maven 项目。
首先,创建一个 Maven 多模块项目。该项目中包含三个模块:
myproject
├── pom.xml
├── module1
│ └── pom.xml
├── module2
│ └── pom.xml
└── module3
└── pom.xml
每一个模块都有一个 pom.xml 配置文件,并且在 pom.xml 文件中都定义了 groupId
、 artifactId
、以及 version
。
接下来,将创建一个 GitLab 项目,然后将 Maven 项目上传到 GitLab 项目中。最后,将 GitLab CI/CD 配置文件 .gitlab-ci.yml
、服务器配置文件 settings.xml
、和 Maven 项目配置文件 pom.xml 添加到 GitLab 仓库中。
在运行时,GitLab Runner 会下载该项目并分别执行三个 maven 打包命令。如果这三个模块都构建成功,则后续步骤可以将构建后的构件部署到私有 maven 仓库。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:多模块maven的deploy集成gitlab ci自动发版配置 - Python技术站