Gradle构建失败,形成错误的maven.org POM

时间:2016-01-17 17:29:19

标签: maven gradle

我的一个项目依赖项显然使用org.gnu.gettext:libintl:0.18.2,但是当我构建(使用Gradle)时,该过程失败:

Could not resolve org.gnu.gettext:libintl:0.18.2.
 > Could not resolve org.gnu.gettext:libintl:0.18.2.
   > Could not parse POM https://repo1.maven.org/maven2/org/gnu/gettext/libintl/0.18.2/libintl-0.18.2.pom
     > The markup in the document following the root element must be well-formed.

从我看来,该文件实际上格式不正确,这不是我做错的事情。有什么我可以做的绕过错误吗?这完全阻碍了我的工作。

1 个答案:

答案 0 :(得分:1)

是的,POM文件实际上是格式错误的。这样的事情怎么可能会让我失望。问题是它在文件末尾包含两次</project>。你无法告诉Maven或Gradle忽略这一点。据他们所知,POM可能真的搞砸了。

一个可能的解决方案(除了让开发人员知道或更改版本)是从the URL下载POM文件Maven正在寻找它并手动纠正它。在这种情况下,您似乎只需删除额外的</project>

然后,您需要下载所有其他工件并使用maven-install-plugin将其安装在m2 repo中。在这种情况下,我建议你下载:

install all of that

mvn maven-install-plugin:install-file -Dfile=libintl-0.18.2.jar -DgroupId=org.gnu.gettext -DartifactId=libintl -Dversion=0.18.2 -Djavadoc=libintl-0.18.2-javadoc.jar -Dsources=libintl-0.18.2-sources.jar -DpomFile=libintl-0.18.2.pom

完成后,Maven再也没有尝试下载它,所以它应该可以正常工作。