2016-01-17 1 views
1

Один из зависимостей моего проекта, по-видимому использует org.gnu.gettext:libintl:0.18.2, но когда я строй (с Gradle) процесс терпит неудачу:Gradle сборка завершается с малью сформированного maven.org POM

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

Да, файл POM на самом деле искажен. Как это было возможно, меня поражает. Проблема в том, что он содержит два раза </project> в конце файла. Вы не сможете сказать Maven или Gradle просто игнорировать это. Насколько они знают, POM может быть действительно испорчен.

Возможное решение (кроме того, что разработчики знают или меняют версию) - загрузить файл POM с the URL. Maven ищет его и исправляет его вручную. В этом случае, похоже, вам просто нужно удалить дополнительные </project>.

Затем вам необходимо загрузить все другие артефакты и установить их в вашем репозитории m2 с помощью maven-install-plugin. В этом случае я рекомендую вам скачать:

И 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 не будет пытаться загрузить его снова, чтобы он работал нормально.

Смежные вопросы