gradlew无法解析POM文件返回含HTML标签的构建报错如何解决?
问题根因
- 你拿到的报错内容里的
<hr>标签根本不存在于合法POM文件中:Jenkins官方制品仓库早已强制要求HTTPS访问,你使用HTTP地址请求POM资源时,服务端会返回包含未闭合<hr>标签的HTML跳转/错误提示页,而非预期的XML格式POM文件。你直接通过浏览器访问该HTTP地址时,浏览器会自动跟随30X重定向到HTTPS的POM资源,所以你看到的是正确的XML格式POM,看不到服务端返回给Gradle的原始HTML内容,才会出现感知错位。 - Gradle解析POM依赖使用的是严格XML解析器,遵循XML规范要求所有元素必须有匹配的闭合标签,不存在HTML规范中允许
<hr>省略闭合标签的宽松规则,因此解析HTML内容时直接抛出标签未闭合的错误。
解决方案原理
你将build.gradle中仓库配置从http://repo.jenkins-ci.org/releases/修改为https://repo.jenkins-ci.org/releases/后,请求直接命中了正确的POM资源,服务端返回合法XML格式的POM文件,解析器可以正常识别处理,问题自然解决。
内容的提问来源于stack exchange,提问作者Dariusz Krynicki
相关产品推荐
相关产品推荐

