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

Gradle构建报错DOCTYPE不被允许,如何解决?

问题

构建Spring Framework项目时,使用Gradle 7.5.1执行./gradlew build命令,遇到如下错误:

./gradlew build

> Task :buildSrc:compileJava FAILED
[Fatal Error] japicmp-gradle-plugin-0.3.0.pom:2:10: DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':buildSrc:compileJava'.
> Could not resolve all files for configuration ':buildSrc:compileClasspath'.
   > Could not resolve me.champeau.gradle:japicmp-gradle-plugin:0.3.0.
     Required by:
         project :buildSrc
      > Could not resolve me.champeau.gradle:japicmp-gradle-plugin:0.3.0.
         > Could not parse POM https://plugins.gradle.org/m2/me/champeau/gradle/japicmp-gradle-plugin/0.3.0/japicmp-gradle-plugin-0.3.0.pom
            > DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.

请问如何让Gradle忽略该问题?这是该特定插件的问题吗?

回答

1. 问题根源

这确实是japicmp-gradle-plugin:0.3.0的问题。该插件的POM文件包含DOCTYPE声明,而Gradle 7.x默认启用了XML安全特性http://apache.org/xml/features/disallow-doctype-decl,禁止解析带有DOCTYPE的XML文件,直接导致POM解析失败。

2. 解决方法

有三种可行方案:

  • 临时全局禁用安全限制:执行构建命令时传入JVM参数,临时关闭该XML安全校验
    ./gradlew build -Dorg.gradle.internal.xml.disallow-doctype-decl=false
    
  • 持久化配置:在项目根目录的gradle.properties文件中添加以下配置(文件不存在则新建),后续构建都会自动应用该设置
    systemProp.org.gradle.jvmargs=-Dorg.gradle.internal.xml.disallow-doctype-decl=false
    
  • 升级插件(推荐):找到项目buildSrc/build.gradle文件,将japicmp-gradle-plugin的版本升级到0.4.0及以上,后续版本已修复POM的DOCTYPE声明问题,从根源解决冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 11:37:10