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

如何替换继承的nexus-staging-maven-plugin为maven-deploy-plugin?

解决继承父POM后替换nexus-staging-maven-plugin为maven-deploy-plugin的问题

我来帮你搞定这个问题,这种继承了父POM里的插件后,自己配置的插件不生效的情况确实很头疼,咱们一步步来修复:

核心问题分析

父POM里的nexus-staging-maven-plugin不仅继承了下来,还可能通过绑定default-deploy执行ID抢占了deploy阶段的任务。你之前只禁用了它的default-deploy执行,但可能父POM还有其他隐藏的执行配置,或者插件本身的优先级更高,导致你的maven-deploy-plugin没机会生效。

具体解决方案

1. 彻底禁用继承的nexus-staging-maven-plugin

首先在根POM的pluginManagement节点里,彻底清除该插件的所有执行绑定,确保它完全不参与任何构建阶段:

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.sonatype.plugins</groupId>
      <artifactId>nexus-staging-maven-plugin</artifactId>
      <executions>
        <!-- 禁用默认的default-deploy执行 -->
        <execution>
          <id>default-deploy</id>
          <phase>none</phase>
        </execution>
        <!-- 如果父POM有其他自定义执行ID(比如"deploy"),也要一并禁用 -->
        <execution>
          <id>deploy</id>
          <phase>none</phase>
        </execution>
      </executions>
      <!-- 双重保险:直接跳过该插件的所有Mojo -->
      <configuration>
        <skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
        <skip>true</skip>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>

2. 确保maven-deploy-plugin正确绑定deploy阶段

接下来在build/plugins节点里,明确配置maven-deploy-plugin,确保它的default-deploy执行能正常绑定到deploy阶段:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-deploy-plugin</artifactId>
      <version>2.7</version>
      <executions>
        <execution>
          <id>default-deploy</id>
          <phase>deploy</phase>
          <goals>
            <goal>deploy</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

3. 验证配置是否生效

配置完成后,你可以用下面的Maven命令查看deploy阶段绑定的插件,确认是否已经切换到maven-deploy-plugin:

mvn help:describe -Dplugin=deploy -Ddetail

在输出里找Goal对应的插件,如果显示org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy,就说明配置生效了。

额外注意点

  • 如果父POM里的nexus-staging-maven-plugin还有其他执行配置(比如自定义ID的执行),一定要把它们都在executions节点里设为<phase>none</phase>,避免残留影响。
  • 尽量使用pluginManagement来管理插件的版本和执行,这样能确保你的配置优先级高于父POM的继承配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:08:33