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

如何在Adobe Cloud Manager流水线中覆盖Maven的-DnewVersion参数效果

解决Adobe Cloud Manager流水线中Versions插件强制修改子模块版本的问题

以下是几种无需修改流水线命令,仅通过pom配置即可保留子模块原版本的方法:

方法1:在父pom中排除指定子模块

在父pom的构建插件配置里,给versions-maven-plugin添加排除规则,指定不需要修改版本的子模块:

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>versions-maven-plugin</artifactId>
      <version>2.6</version>
      <configuration>
        <!-- 格式为groupId:artifactId,可添加多个排除项 -->
        <excludes>
          <exclude>你的组ID:子模块A</exclude>
          <exclude>你的组ID:子模块B</exclude>
        </excludes>
      </configuration>
    </plugin>
  </plugins>
</build>

执行流水线命令时,被排除的子模块版本会保持pom中定义的原值。

方法2:在子模块中跳过Versions插件

针对需要保留版本的子模块,在其pom中配置跳过versions插件的执行:

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>versions-maven-plugin</artifactId>
      <configuration>
        <!-- 跳过当前模块的版本修改操作 -->
        <skip>true</skip>
      </configuration>
    </plugin>
  </plugins>
</build>

这种方式适合仅个别子模块需要保留版本的场景。

方法3:用属性固定子模块版本

将子模块版本独立定义为pom属性,避免继承父模块版本,同时配置Versions插件不修改这些属性:

  1. 在父pom中定义版本属性:
<properties>
  <parent.version>5.10.0</parent.version>
  <submodule-a.version>1.2.3</submodule-a.version>
  <submodule-b.version>4.5.6</submodule-b.version>
</properties>
  1. 子模块pom中使用自身版本属性:
<version>${submodule-a.version}</version>
  1. 在父pom的Versions插件配置中排除这些子模块版本属性:
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>versions-maven-plugin</artifactId>
  <configuration>
    <propertyExcludes>
      <propertyExclude>submodule-a.version</propertyExclude>
      <propertyExclude>submodule-b.version</propertyExclude>
    </propertyExcludes>
  </configuration>
</plugin>

此方法适合版本依赖属性管理的项目,既能统一管理版本,又能避免子模块版本被强制覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 17:32:39