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

如何修改Maven依赖插件的默认依赖?替换Struts 1.3.8版本

如何替换maven-dependency-plugin依赖的Struts 1.3.8版本?

我来帮你解决这个问题——公司安全合规要求禁止使用Struts 1.3.8,而maven-dependency-plugin间接依赖了这个版本,我们可以通过两种可靠的方式来替换它:

方法1:通过Dependency Management统一覆盖版本

这是最简洁的方式,能让整个项目(包括插件的间接依赖)自动使用合规的Struts版本。你只需要在项目的pom.xml中添加dependencyManagement块,指定安全的Struts版本(比如1.3.10,这是Struts 1.x系列中修复了多个安全漏洞的后续稳定版本):

<dependencyManagement>
  <dependencies>
    <!-- 统一指定合规的Struts核心版本 -->
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts-core</artifactId>
      <version>1.3.10</version>
    </dependency>
    <!-- 若插件还依赖其他Struts模块(如struts-action),一并指定 -->
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts-action</artifactId>
      <version>1.3.10</version>
    </dependency>
  </dependencies>
</dependencyManagement>

添加后,Maven会自动将所有依赖链中的Struts 1.3.8替换为你指定的版本,无需手动排除旧依赖。

方法2:直接在maven-dependency-plugin中排除旧依赖并引入新版本

如果你的项目不适合用dependencyManagement统一管理,也可以直接在插件的配置中处理:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <version>你的插件当前版本</version>
      <dependencies>
        <!-- 排除不安全的Struts 1.3.8依赖 -->
        <dependency>
          <groupId>org.apache.struts</groupId>
          <artifactId>struts-core</artifactId>
          <version>1.3.8</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.struts</groupId>
              <artifactId>struts-core</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <!-- 引入合规的Struts版本 -->
        <dependency>
          <groupId>org.apache.struts</groupId>
          <artifactId>struts-core</artifactId>
          <version>1.3.10</version>
        </dependency>
      </dependencies>
    </plugin>
  </plugins>
</build>

验证替换是否成功

无论用哪种方法,都要运行以下命令确认依赖树中的Struts版本已经更新:

mvn dependency:tree -Dincludes=org.apache.struts:struts-core

输出结果里应该能看到你指定的合规版本,而不是1.3.8。

注意事项

  • 尽量选择Struts 1.x系列的最新稳定版本,这些版本修复了1.3.8中的安全漏洞,且保持向后兼容性。
  • 替换版本后,一定要做项目的回归测试,确保没有API兼容性问题(Struts 1.3.x系列的版本兼容性通常很好,但还是要谨慎)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:50:55