我的一个项目依赖项显然使用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.
从我看来,该文件实际上格式不正确,这不是我做错的事情。有什么我可以做的绕过错误吗?这完全阻碍了我的工作。
答案 0 :(得分:1)
是的,POM文件实际上是格式错误的。这样的事情怎么可能会让我失望。问题是它在文件末尾包含两次</project>
。你无法告诉Maven或Gradle忽略这一点。据他们所知,POM可能真的搞砸了。
一个可能的解决方案(除了让开发人员知道或更改版本)是从the URL下载POM文件Maven正在寻找它并手动纠正它。在这种情况下,您似乎只需删除额外的</project>
。
然后,您需要下载所有其他工件并使用maven-install-plugin
将其安装在m2 repo中。在这种情况下,我建议你下载:
libintl-0.18.2-javadoc.jar
libintl-0.18.2-sources.jar
libintl-0.18.2.jar
libintl-0.18.2.pom
手动纠正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再也没有尝试下载它,所以它应该可以正常工作。