Ошибка m2e в MavenArchiver.getManifest ()

100

Я вижу ошибку в своей службе STS и не знаю, как ее отладить. Осматриваясь, я вижу только расплывчатые ссылки на ошибку и никаких решений.

Ошибка:

org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) pom.xml/ <maven projectName>строка 1 Проблема конфигурации Maven

Вопрос : Может ли кто-нибудь дать какие-либо предложения о том, как получить дополнительную информацию по проблеме, чтобы отладить ее дальше, или какие-либо возможные решения?

Может быть, еще немного контекста о том, какова функциональность метода. Javadoc, связанный с MavenArchiver.getManifest()методом, не очень подробный, и я не вижу трассировки стека. Я пробовал несколько обновлений и обновлений проекта и связанных проектов, включая очистку моего локального репозитория m2.

Информация СТС :

  • Версия: 3.7.3.RELEASE
  • Идентификатор сборки: 201602250940
  • Платформа: Eclipse Mars.2 (4.5.2)

m2e информация :

  • Версия: 1.6.2.20150902-0002
Скоттмф
источник
Вероятно, потребуется просмотреть файл pom.xml для диагностики проблемы. Код жалуется на структуру файла pom.xml, и это не ошибка программного обеспечения Maven. Следовательно, вы не ожидаете увидеть файл журнала ошибок. Наиболее частая причина, с которой я столкнулся, - это типографская ошибка в содержимом тегов или несоответствие между начальным и конечным тегами.
Брэдли Росс
1
Код отлично компилируется при запуске из командной строки. Я бы подумал, что будет ошибка, если будет опечатка или несоответствие тегов, верно?
scottmf
Несмотря на то, что первый ответ на этот вопрос SO сработал для меня, я хотел бы знать, почему все, что я вижу, это эта ошибка, и у нее нет контекста. Он не говорит о том, что происходит. он просто говорит имя метода «MavenARchiver.getManifest» - без текста ошибки, ничего ... даже там, где генерируется какое-либо исключение. Где мы можем найти полную ошибку, если что-то пошло не так в eclipse? Такие красные крестики нам ни к чему. Чья это была глупая идея - просто напечатать имя метода как сообщение об ошибке и все?
Calicoder

Ответы:

197

Я столкнулся с той же проблемой после обновления maven-jar-pluginдо последней версии (на момент написания) 3.0.2.
Eclipse 4.5.2начал отмечать pom.xmlфайл с org.apache.maven.archiver.MavenArchiver.getManifestошибкой, и Maven > Обновить проект .. не исправил.

Простое решение: перейти на версию 2.6.
Действительно, возможное решение - вернуться к версии 2.6, при дальнейшем обновлении проекта все ошибки будут устранены. Однако это не идеальный сценарий, и возможно лучшее решение: обновитьm2e расширения (интеграция с Eclipse Maven).

Лучшее решение: обновите расширения Eclipse m2e.
В меню « Справка» > « Установить новое программное обеспечение» добавьте новый репозиторий (с помощью параметра « Добавить ..» ), указав следующий URL-адрес:

  • https://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/

Затем следуйте указаниям мастера обновления как обычно. Затем Eclipse потребуется перезапуск. После этого следующий проект обновления ... в соответствующем проекте Maven удалит все ошибки, и ваша сборка Maven сможет пользоваться преимуществами последней maven-jar-pluginверсии.


Дополнительные примечания
Причина этой проблемы заключается в том, что начиная с версии 3.0.0соответствующий компонент, maven-archiverа также связанные plexus-archiverс ним были обновлены до более новых версий, что нарушает внутреннее использование (посредством отражений) m2eинтеграции в Eclipse. Единственное решение - правильно обновить Eclipse, как описано выше.
Также обратите внимание: в то время как Eclipse изначально сообщал об ошибках, сборка Maven (например, из командной строки) продолжала бы работать отлично, эта проблема связана только с интеграцией Eclipse-Maven, то есть с IDE.

A_Di-Matteo
источник
3
Мне удалось обойти аналогичную проблему, вернувшись maven-war-pluginс 3.0.0на 2.6.
Бен Хатчисон
1
Мне не удалось получить доступ к сайту otto.takari.io, но я смог получить расширение отhttp://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
azurefrog
3
Для нормальной работы Eclipse Mars: repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/… . Поместите его в Install -> Work with field, Enter. Отметьте m2e Extensions в списке (только один вариант).
харипрасад
1
Также работает с «Марсом.2».
Пино
16

Я нашел свой ответ! Я заглянул в pom на предмет любых плагинов, которые зависят от maven-archiver, и обнаружил, что maven-jar-plugin делает это. Использовалась последняя версия 3.0.0. Когда я понизил версию до 2.6, похоже, проблема решена :-)

Скоттмф
источник
14

У меня была такая же проблема с проектом весенней загрузки. Решением было понизить версию jar maven-jar-plugin с 3.2 до 2.6. мне нужно было просто добавить это в проект pom:

<properties>        
    <maven-jar-plugin.version>2.6</maven-jar-plugin.version>
</properties>
Ала Мессауди
источник
11

У меня была точно такая же проблема. Моя среда была:

  • Пружина STS 3.7.3.RELEASE
  • Идентификатор сборки: 201602250940
  • Платформа: Eclipse Mars.2 (4.5.2)

В симптомах этих проблем были:

  1. В моем файле PM был красный флаг ошибки. и описание ошибки было таким, как описано в исходном вопросе, заданном здесь.
  2. Были известные проблемы компиляции в нескольких файлах Java в проекте, но eclipse по-прежнему не отображал их, помеченных как ошибка, в панели редактора, а также в дереве проводника проекта слева.

У меня сработало решение (описанное выше) об обновлении расширений m2e.

Лучшее решение (моя рекомендация):

  • обновить расширения Eclipse m2e
  • В разделе «Справка»> «Установить новое программное обеспечение ..» добавьте новый репозиторий (с помощью параметра «Добавить ..»), указав следующий URL-адрес: https://otto.takari.io/content/sites/m2e.extras/m2eclipse-mavenarchiver/ 0.17.2 / Н / ПОСЛЕДНИЕ /
  • Выберите расширения m2e, примите лицензию.
  • После обновления вам будет предложено перезапустить STS. Проблема исчезнет после того, как STS снова включится.
Рави Раджамиер
источник
это был точный конфликт плагина maven, который у меня был с Spring STS 3.7.3
ArifMustafa
7

У меня была такая же проблема с проектом весенней загрузки. Решение состояло в том, чтобы понизить версию зависимости spring-boot-starter-parent с 2.0.0.RELEASE до 1.5.10.RELEASE (вы можете перейти на любую стабильную версию)

из:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

к

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
Саурав
источник
7

Я также столкнулся с той же проблемой, и она была решена путем изменения версии с 3.2.0 на 2.6, как показано ниже во фрагменте pom.xml.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <warSourceDirectory>src/main/webapp</warSourceDirectory>
        <warName>Spring4MVC</warName>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>
Вайбхав Шарма
источник
4

Обновите расширения m2e вместо перехода на более раннюю версию.

В разделе «Справка»> «Установить новое программное обеспечение ..» добавьте новый репозиторий (с помощью параметра «Добавить ..»).

Укажите имя для своего плагина и добавьте путь http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/

как только вы закончите установку, перезапустите eclipse и обновите свой проект.

ВЕНКАТ С
источник
пробовал много URL безуспешно, этот спас меня. thnx
Яшар
0

Я также столкнулся с аналогичными проблемами, изменение версии с 2.0.0.RELEASE на 1.5.10.RELEASE сработало для меня, попробуйте, прежде чем понижать версию maven

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>  
</dependencies>
Равиндра Дандотья
источник
0

Я решил эту ошибку в pom.xml, добавив приведенный ниже код

Spring-rest-demo org.apache.maven.plugins maven-war-plugin 2.6
Йошита Махаджан
источник
0

Я также столкнулся с той же проблемой, и она была решена путем добавления комментария к элементу версии в POM.xml, как показано.

org.apache.maven.archiver.[MavenArchiver](https://maven.apache.org/shared/maven-archiver/apidocs/org/apache/maven/archiver/MavenArchiver.html).getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration)

<plugins>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <!-- <version>3.5.1</version> -->
    <configuration>
      <source>1.7</source>
      <target>1.7</target>
    </configuration>
  </plugin>
  <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <!-- <version>3.1.0</version> -->
    <configuration>
      <warSourceDirectory>WebContent</warSourceDirectory>
      <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
  </plugin>
</plugins>
Яш
источник
-1

Используйте шаги, указанные в этой ссылке . У меня это сработало.

Шаг - 1 Щелкните правой кнопкой мыши свой проект в Eclipse

Шаг - 2 Щелкните Свойства

Шаг - 3 Выберите Maven в списке слева.

Шаг - 4 Вы заметите «pom.xml» в текстовом поле «Активные профили Maven» с правой стороны. Очистите его и нажмите Применить.

Шаг - 5 Запуск от имени -> Maven clean -> Maven Install

Надеюсь, поможет!

Махан
источник