You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven多模块项目如何将Java源码Jar部署至GCP Artifact Registry?

解决Maven多模块项目源码Jar无法上传至GCP Artifact Registry的问题

1. 确保maven-source-plugin配置正确并绑定到生命周期

在父pom.xml或各子模块pom.xml中,必须正确配置maven-source-plugin,让它在构建流程中生成源码Jar并标记为可附加构件,这样mvn deploy才会同步上传该文件。示例配置如下:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <version>3.3.0</version> <!-- 使用最新稳定版本 -->
      <executions>
        <execution>
          <id>attach-sources</id>
          <goals>
            <goal>jar-no-fork</goal> <!-- jar目标也可,no-fork更高效 -->
          </goals>
          <phase>verify</phase> <!-- 绑定到verify阶段,确保deploy前完成生成 -->
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

关键注意点:

  • 必须通过executions节点将插件绑定到生命周期阶段,否则插件不会自动触发
  • 目标选择jar或jar-no-fork,这两个选项会生成源码Jar并标记为可部署的附属构件

2. 检查CloudBuild中的Maven命令参数

确保CloudBuild执行的mvn deploy命令没有跳过源码构件的生成与上传。如果命令中包含-Dmaven.source.skip=true这类参数,会直接跳过源码Jar的处理,需要移除该参数。

对于多模块项目,要确保在父模块目录下执行完整构建命令,示例命令:

mvn clean deploy -DskipTests

3. 确认GCP Artifact Registry的仓库配置支持附属构件

GCP Artifact Registry的Maven仓库默认支持存储源码Jar、Javadoc Jar这类附属构件,但要确保pom.xml中的distributionManagement配置正确指向目标仓库,且没有过滤附属构件的设置。示例配置:

<distributionManagement>
  <repository>
    <id>gcp-artifact-registry</id>
    <url>artifactregistry://us-central1-maven.pkg.dev/[PROJECT_ID]/[REPOSITORY_NAME]</url>
  </repository>
  <snapshotRepository>
    <id>gcp-artifact-registry</id>
    <url>artifactregistry://us-central1-maven.pkg.dev/[PROJECT_ID]/[REPOSITORY_NAME]</url>
  </snapshotRepository>
</distributionManagement>

CloudBuild默认会自动处理GCP仓库的认证,若使用自定义settings.xml,需确认其中的认证配置正确。

4. 通过CloudBuild日志定位问题

若以上配置都没问题,查看CloudBuild的构建日志,搜索maven-source-plugin相关输出:

  • 确认插件是否执行并生成了源码Jar,日志中应有类似Building jar: .../your-module-1.0.0-sources.jar的内容
  • 确认deploy阶段是否尝试上传源码Jar,日志中应有Uploading to gcp-artifact-registry: .../your-module-1.0.0-sources.jar的内容

如果没有生成日志,说明插件未绑定到生命周期;如果有上传失败日志,再根据具体错误信息排查(如权限、仓库路径错误等)。

内容的提问来源于stack exchange,提问作者danidemi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:22:44