使用 Nexus 加速构建

推送 JAR 包至私服

上传 Maven settings.xml 至平台

进入 DevOps > 我的应用 > 选择应用 > 应用设置 > 流水线 > 变量配置 > 选择环境

点击 增加变量, 选择类型为 文件 并开启加密,上传 settings.xml(下方有注意事项),变量名称定义为 MAVEN_SETTING_FILE

::: warning 警告 因文件内含有密码等敏感信息,配置必须开启加密。

平台为了防止 XXE 攻击,所以不允许 .xml 文件上传。xml 文件可以变更为 settings_xml 文件(linux 不区分文件类型) :::

settings.xml 示例如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  5. <servers>
  6. <server>
  7. <id>terminus</id>
  8. <username>deployment</username>
  9. <password>******</password>
  10. </server>
  11. </servers>
  12. </settings>

配置 pom.xml 推送地址

对应项目的 pom 需增加如下配置,若未添加则会报错无法推送。

  1. <distributionManagement>
  2. <repository>
  3. <id>terminus</id> <!-- settings.xml 里配置的 server.id -->
  4. <name>Releases</name>
  5. <url>http://私服地址/repository/releases</url> <!-- release 私服的地址 -->
  6. </repository>
  7. <snapshotRepository>
  8. <id>terminus</id>
  9. <name>Snapshots</name>
  10. <url>http://私服地址/repository/releases</url> <!-- snapshot 私服的地址 -->
  11. </snapshotRepository>
  12. </distributionManagement>

配置流水线实现 JAR 包上传

MAVEN_SETTING_FILE 即上文配置的变量名称。

  1. version: '1.1'
  2. stages:
  3. - stage:
  4. - git-checkout:
  5. alias: git-checkout
  6. params:
  7. depth: 1
  8. - stage:
  9. - java-build:
  10. alias: java-build
  11. version: "1.0"
  12. params:
  13. build_cmd:
  14. - "mvn clean deploy -e -B -U --settings ((MAVEN_SETTING_FILE)) -Dmaven.test.skip"
  15. jdk_version: 8
  16. workdir: ${git-checkout}

如需自动触发构建,可增加持续集成配置。

  1. on:
  2. push:
  3. branches:
  4. - develop # 持续集成

::: tip 提示

  • Maven 401 错误即账号密码错误。
  • Maven 405 错误可能为私服地址错误,部分私服地址是无法推送的,例如 public。

:::

推送 JAR 包至私服(Gradle)

配置 Nexus 私服密码

进入 DevOps > 我的应用 > 选择应用 > 应用设置 > 流水线 > 变量配置 > 选择环境

点击 增加变量, 选择类型为 并开启加密,配置以下变量:

  • NEXUS_USERNAME
  • NEXUS_PASSWORD

::: warning 警告 因文件内含有密码等敏感信息,配置必须开启加密。 :::

配置 build.gradle 推送地址

对应项目的 build.gradle 需增加如下配置,若未添加则会报错无法推送。更多信息请参见 build.gradle 配置方式

  1. publishing{
  2. ...
  3. repositories {
  4. maven {
  5. // change URLs to point to your repos, e.g. http://my.org/repo
  6. def releasesRepoUrl = "http://私服地址/repository/releases"
  7. def snapshotsRepoUrl = "http://私服地址/repository/snapshots"
  8. url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
  9. credentials {
  10. username = System.getenv("NEXUS_USERNAME")
  11. password = System.getenv("NEXUS_PASSWORD")
  12. }
  13. }
  14. }
  15. }

配置流水线实现 JAR 包上传

  1. version: '1.1'
  2. stages:
  3. - stage:
  4. - git-checkout:
  5. alias: git-checkout
  6. params:
  7. depth: 1
  8. - stage:
  9. - java-build:
  10. alias: java-build
  11. version: "1.0"
  12. params:
  13. build_cmd:
  14. - "./gradlew publish"
  15. jdk_version: 8
  16. workdir: ${git-checkout}

如需自动触发构建,可增加持续集成配置。

  1. on:
  2. push:
  3. branches:
  4. - develop # 持续集成

::: tip 提示

  • Maven 401 错误即账号密码错误。
  • Maven 405 错误可能为私服地址错误,部分私服地址是无法推送的,例如 public。

:::