构建CordApp示例时Gradle报致命错误但构建成功求助
CordApp Gradle构建时POM文件致命错误但构建成功的原因与解决办法
你遇到的这个情况是Gradle构建过程中典型的「依赖校验失败但核心任务正常完成」场景,我来帮你拆解原因和解决步骤:
问题根源
- 本地依赖缓存损坏:所有报错都是XML格式异常——比如
The processing instruction target matching "[xX][mM][lL]" is not allowed(XML处理指令不符合规范)或者The markup in the document following the root element must be well-formed(根元素后存在无效标记),这说明你本地仓库里对应的这些依赖的POM文件已经损坏,大概率是之前下载中断、磁盘写入异常或缓存过期导致的。 - Gradle任务执行逻辑特性:Gradle在编译阶段会校验依赖的POM文件,但这个校验是辅助性的——只要编译真正需要的JAR文件完整可用,构建流程就不会被终止,所以最终会显示
BUILD SUCCESSFUL。
解决办法
1. 手动清理损坏的本地依赖缓存
找到报错POM对应的依赖目录,删除后让Gradle重新下载:
- 比如针对
corda-confidential-identities-2.0.0.pom,去本地Maven仓库(默认路径~/.m2/repository)或Gradle缓存目录(~/.gradle/caches/modules-2/files-2.1)找到net/corda/corda-confidential-identities/2.0.0文件夹,直接删除。 - 用同样方法处理其他报错依赖:
guava-21.0、artemis-pom-2.1.0、jgroups-3.6.13.Final、netty-parent-4.1.9.Final、genesis-default-flava-2.2、objenesis-parent-2.2。
2. 强制Gradle重新下载所有依赖
执行以下命令,让Gradle彻底刷新依赖缓存,重新从远程仓库拉取完整的POM和JAR文件:
./gradlew clean build --refresh-dependencies
--refresh-dependencies参数会强制Gradle忽略本地缓存,重新解析所有依赖并下载未损坏的文件。
3. 检查远程仓库配置(可选)
如果重新下载后仍出现相同错误,可能是你配置的远程仓库本身提供的POM文件有问题。可以检查build.gradle或settings.gradle里的仓库配置,确保使用Corda官方仓库、Maven Central这类可靠的源。
内容的提问来源于stack exchange,提问作者Stefano C
相关产品推荐
相关产品推荐

