Ответ 1
Вы всегда можете попробовать mvn -U clean install
-U
проверяет наличие обновленных выпусков и снимков в удаленных репозиториях.
Я надеюсь, что кто-то может помочь мне с проблемой, с которой я борюсь.
Когда я пытаюсь построить свой проект с терминала, я получаю эту ошибку:
Failed to read artifact descriptor for com.morrislgn.merchandising.common:test-data-utils:jar:0.3b-SNAPSHOT: Could not find artifact com.morrislgn.merchandising:merchandising:pom:0.3b-SNAPSHOT
Консоль common.test-data-utils
создается отдельным проектом и делится между этим и другим проектом (другой проект тоже не строится, но это связано с другой проблемой).
Я могу создать com.morrislgn.merchandising.common:test-data-utils
без проблем, я могу увидеть запись, которую он делает в локальном репозитории .m2
на моей машине. Я также переиндексировал мой репозиторий в Eclipse.
POM для моего проекта имеет эту запись:
<dependency>
<groupId>com.morrislgn.merchandising.common</groupId>
<artifactId>test-data-utils</artifactId>
<version>0.3b-SNAPSHOT</version>
</dependency>
Что мне кажется правильным, POM не сообщает об ошибках ни при просмотре в Eclipse.
Может кто-нибудь сказать мне, что мне здесь не хватает или что-то не так?
Вы всегда можете попробовать mvn -U clean install
-U
проверяет наличие обновленных выпусков и снимков в удаленных репозиториях.
Эта проблема может возникнуть, если у вас есть дочерние проекты, относящиеся к родительскому pom, и вы не установили их из родительского каталога pom (запустите mvn install
из родительского каталога). Один из дочерних проектов может зависеть от проекта sibling, и когда он отправится читать pom брата, он будет терпеть неудачу с ошибкой, упомянутой в вопросе, если вы не установили из родительского каталога pom хотя бы один раз.
Я просто столкнулся с этой проблемой при перемещении проекта на новый компьютер. У меня была привычка запускать команды из дочернего проекта и не запускала установку родителя.
Имел ту же проблему с IntelliJ IDEA и после работал.
File
Settings
Build, Execution, Deployments
Build Tools
из раскрывающегося спискаMaven
из раскрывающегося спискаAlways update snapshots
Если вы используете eclipse, щелкните правой кнопкой мыши по проекту → свойства → Maven и убедитесь, что " Решить зависимости от проектов рабочей области" не нажата.
Надеюсь, это поможет.
Если вы используете Eclipse, Щелкните правой кнопкой мыши по проекту → Maven → Обновить проект. Он откроет диалоговое окно "Обновление проекта Maven".
В этом диалоговом окне установите флажок Принудительное обновление снимков/выпусков и нажмите ОК. (См. Рисунок ниже)
Это сработало для меня!
Я знаю, что довольно поздно разговаривать, но у меня тоже была эта проблема. Я думаю, что проблема была в моем брандмауэре. Моим решением было отключить сеть от сети, подключиться к нашей открытой беспроводной сети, а затем принудительно обновить ее через Eclipse. Это разрешило все.
У меня была такая же проблема с eclipse, где командная строка maven build работала просто отлично, НО попробуйте это
Ошибка уходит.... почему моя командная строка mvn работала с этими каталогами, а eclipse.m2eclipse не мог, я понятия не имею, и это отчасти отстойно. Мой проект теперь снова работает в eclipse.
Я решил эту проблему, удалив в папках репозитория, где эта ошибка была показана всем, кроме файлов .jar и .pom.
У меня была такая же проблема с использованием IntelliJ. Я решил щелкнуть правой кнопкой мыши на pom.xml> Maven> Reimport
"Не удалось прочитать дескриптор артефактов" проблемы обычно указывают на проблему с файлом pOM зависимости в репозитории maven. Я бы предложил вам дважды проверить, совпадает ли имя файла pom с именем maven, а также проверить, действительно ли содержимое файла pom является допустимым.
У меня есть проект
A/
|--a1
|--a2
Теперь в нашем org
есть еще один проект, B/
|--b1
|--b2
|--b3
(Каждый модуль a1, b1 и т.д. и родительские проекты A, B имеют свой собственный pom.xml в соответствии со стандартными правилами maven родительского и дочернего)
Оба проекта проверяются на моем локальном затмении (из SVN). Я активно работаю над A.
Я понял, что существует хорошая общая функциональность (b4), разработанная в B, и мне нужно было ее использовать.
B/
|--b1
|--b2
|--b3
|--b4 (NEW)
Разработчик b4 развернул этот модуль b4 как артефакт в нашем репозитории org. Я включил зависимость от моего модуля POM, то есть a2 pom.xml. Eclipse загрузил reuqired артефакт из репо, и я мог импортировать в него классы.
Теперь начинается выпуск... Мне нужно было проверить исходный код b4 для какой-то цели, и поскольку я уже проверил B на своем локальном затмении, я обновил его из SVN и проверил модуль b4. Я также выполнил pom.xml модуля b4 с целями, такими как чистый, пакет и т.д. Через некоторое время, когда я закончил свою кодировку, мне нужно было создать JAR моего модуля a2. Я запускал "пакет" на a2 pom.xml и BAM!! ошибки n ошибок для модуля a2. Эти ошибки также не очень удобны для пользователя. Единственное, что в журналах было имя b4.
Решение: Пробыв множество решений в течение многих часов, я запускал "mvn -U clean install" из консоли в моей главной директиве B (т.е. В.. /codebase/B ). Поскольку B является родительским, чистая команда установки запускается для всех модулей, включая b4, и она успешно выполняется. После этого я запускал "mvn -U clean install" для моего родительского проекта, который является A. И это сработало! Модуль a2 скомпилирован, установлен, (упакован позже) успешно.
Здесь важный момент: если b4 находится в вашей рабочей области, не только установите b4. Вам нужно будет очистить комплект B. Я подошел к этому решению после прочтения ответа от Zuill
РЕДАКТИРОВАТЬ: Еще одна вещь здесь, чтобы отметить, что если бы я не выполнил проект B в локальной среде, то эта проблема могла не произойти для меня. Я склонен думать, что это произошло потому, что я проверил B в моей локальной рабочей области.
Вы указываете два разных идентификатора группы, com.morrislgn.merchandising.common
и com.johnlewis.jec.webpim.common
. Возможно, это проблема.
Не удалось обновить через eclipse. Придется использовать mvn clean install -U (который разрешил все).
Для меня это было связано с установкой "User Setting.xml" внутри
Window > preferences > Maven > User Settings > and then browsing to the user Settings inside the { maven unarchived directory / }/apache-maven-2.2.1/conf/settings.xml .
Ссылка Ошибка Maven "Ошибка передачи..."
find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;
Для меня это, по-видимому, было проблемой с POM зависимости.
Я работал вокруг него, используя виртуальный репозиторий jitpack, с помощью которого вы можете включать репозитории github на основе своего URL вместо своего собственного POM (что, кажется, было ошибочным в моем случае).
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
У меня была такая же проблема некоторое время, и, несмотря на выполнение mvn -U clean install
, проблема не решалась!
Я, наконец, решил проблему, удалив всю папку .m2
, а затем перезапустил мою среду IDE, и проблема исчезла!
Поэтому иногда проблема поднималась из-за некоторых несовместимостей или проблем в вашем локальном репозитории maven.
У меня была аналогичная проблема. В моем случае версия testng в моей папке .m2/repositories была повреждена, но когда я удалил ее и снова обновил maven, все сработало нормально.
В нашем случае ошибка возникла из-за неправильного переименования groupId, в то время как некоторые из проектов в мультимодульной конфигурации Maven ссылаются на другие.
У нас был проект агрегатора (billing-parent
) с двумя модулями (billing-api
, billing
):
com.company.team:billing-parent
|-com.company.team:billing-api
|-com.company.team:billing
billing
проекта зависит от billing-api
. Таким образом, в pom.xml
он имел:
<dependency>
<groupId>com.company.team</groupId>
<artifactId>billing-api</artifactId>
<version>${project.version}</version>
</dependency>
Мы решили переименовать groupId из com.company.team
в com.company.team.billing
. Мы заменили старое значение в родительском pom.xml
и в <parent>
разделах обоих модулей. Но забыл обновить зависимость выше. Таким образом, у нас была конфигурация, в которой проект billing
ссылается на старый billing-api
. В конце концов, он заработает модуль billing
через некоторое время с ошибкой, подобной
[ERROR] Failed to execute goal on project billing: Could not resolve dependencies for project com.company.team.billing:billing:jar:3.5.1-SNAPSHOT: Failed to collect dependencies at com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failed to read artifact descriptor for com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failure to find <parent of the com.company.team:billing-parent project which is not available any more>
несмотря на то, что модуль billing-api
строит без ошибок.
Решение 1: переименовать groupId
в dependency
также.
Решение 2: замените groupId
на groupId
${project.groupId}
следующим образом:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>billing-api</artifactId>
<version>${project.version}</version>
</dependency>
Вывод. Поэтому мой совет в случае, если вы столкнулись с ошибкой в многомодульной конфигурации, должны быть: тщательно проверить groupId
и artifactId
зависимостей на соседних модулях.
У меня была эта проблема в eclipse, mvn -U clean install
не работал, но щелкнул правой кнопкой мыши проект и выбрав Maven- > Update Project, исправил его.
Я только начал использовать STS Eclipse с первого раза, используя Maven. У проекта я setup уже есть свой собственный settings.xml. Если это так, вам нужно обновить файл settings.xml в конфигурации запуска.
щелкните правой кнопкой мыши pom.xml и "Запустить как" → "Запустить конфигурации..."
где он говорит "Пользовательские настройки", нажмите кнопку "Файл" и добавьте параметр settings.xml.
Я думаю, что это специфично для вашего проекта, но мои "Цели" настроены на "чистую установку", и я проверил "Пропустить тесты".
Эта ошибка в основном говорит о том, что maven не смог прочитать определенную зависимость от локального репозитория. Это может случиться, потому что файл jar не загрузился правильно. Итак, перейдите в свой локальный репозиторий maven и убедитесь, что нет файла расширения .lastUpdated.
перейдите в путь к рабочей области и войдите в папку вашего проекта
выполнить следующую команду
mvn -U чистая установка
если вы видите massege похожие на:
Не удалось разрешить зависимости для проекта: war: 0.0.1-SNAPSHOT: не удалось собрать зависимости на com.sun.jersey: jersey-server: jar: 1.9
Затем дайте следующую команду:
export MAVEN_OPTS = -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Потом опять дай команду
mvn -U чистая установка
Теперь вы можете видеть, что ошибка исчезла !!
Теперь очистите и постройте maven проект.
Я решил эту проблему, изменив maven setting.xml и репозиторий