Внутренняя ошибка произошла во время: "Обновление проекта Maven". java.lang.NullPointerException

Я занимаюсь разработкой веб-проекта Java EE. Когда я пытаюсь добавить зависимость, появляется это сообщение об ошибке. Я использую Eclipse Kepler.

Внутренняя ошибка произошла во время: "Обновление проекта Maven". java.lang.NullPointerException

Не могли бы вы помочь мне? Спасибо.

введите описание изображения здесь

24 ответа

Решение

Я решил мой, удалив .settings папка и .project файл в проекте, а затем повторно импортировать проект.

Для меня сработал ответ, который я нашел на CodeRanch, от пользователя Maneesh Godbole:

  1. Закрыть затмение.
  2. Перейдите в папку "Рабочая область"
  3. Убедитесь, что в вашей ОС включена настройка просмотра скрытых файлов
  4. Определите и удалите каталог.metadata
  5. Перезапустите затмение
  6. Импортировать проект

У меня была такая же проблема в одном из моих модулей.

Запуск "mvn eclipse:eclipse" в консоли /cmd решил проблему для меня.

На случай, если это кому-нибудь поможет, кроме удаления .settings а также .projectПришлось удалить .classpath а также .factorypath перед тем, как успешно импортировать проект в Eclipse.

В нашем случае этой проблемы у нас было pom.xml файлы, в которых конфигурация отображения жизненного цикла специфична для m2e

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
...

не было <version>1.0.0</version> часть. При выполнении Maven -> Update Project... это вызывает сообщаемое исключение NullPointerException без трассировки стека. При использовании нового Import... -> Existing Maven Projects произошло то же исключение, но со следом стека, который привел меня к поиску вышеупомянутого.

(Это относится к m2e 1.6.1.20150625-2338 в Eclipse Luna Service Release 2 (4.4.2).)

Файлorg.eclipse.m2e.core.prefs находится в папке .settings. Если вы столкнулись с проблемой

An internal error occurred during: "Updating Maven Project". java.lang.NullPointerException

Удалите проект из Eclipse, затем, удалив папку .settings и файл .project в проекте ->, а затем повторно импортируйте проект.

Вышеупомянутые решения не сработали для меня, поскольку проблема с открытой версией JDK 13 https://github.com/spotify/dockerfile-maven/issues/163 Итак, я деградировал, чтобы открыть JDK8, и это работает для меня

Это помогло мне: Project menu -> Clean... -> clean all projects

Я использую:

Eclipse Java EE IDE для веб-разработчиков.

Версия: Neon.3 Release (4.6.3) Идентификатор сборки: 20170314-1500

Исправление / хитрость для меня заключалось в удалении моего локального репозитория в ~/.m2/repository, чтобы удалить локальные зависимости, и перестроении моего проекта, в котором были удалены новые зависимости.

Мне помогло удаление локального репозитория maven

Eclipse имеет журнал ошибок. Там вы увидите полную трассировку стека. В моем случае это, кажется, вызвано плохим файлом jar, объединенным с библиотеками java.util.zip, которые не вызывают правильное исключение, только исключение NullPointerException.

Ни один из вышеперечисленных методов не работал для меня. Это также может возникнуть из-за наличия циклической зависимости в вашем рабочем пространстве затмения. Поэтому, если есть какие-либо другие ошибки, присутствующие в любом из других проектов в вашей рабочей области, попробуйте исправить их, и эта проблема исчезнет. Вот как я устранил ошибку.

Избегайте удаления папки .metadata, поскольку она очищает все настройки, запускает конфигурации. Вместо этого переименуйте папку .metadata -> Перезапустить eclipse -> Импортировать проект

Мне пришлось переустановить Eclipse, удалить папку.m2 и пересобрать банки.

мне помогло удаление локальной папки .settings

Основной проблемой в моем случае был конфликт файлов в папке.settings. Таким образом, удаление папки.settings решило бы ошибку Maven, но я хотел сохранить некоторые из моих локальных файлов конфигурации. Я разрешил конфликт, затем снова попробовал обновление Maven, и оно заработало.

В моем случае проблема заключалась в конфликте производных зависимостей, которые использовались другими зависимостями, и некоторые из этих производных версий зависимостей были недоступны, возможно, потому, что некоторые развертывания, которые я забыл сделать, потому что с разрешением рабочего пространства все работало, но при перемещении в другую среду все сломалось внезапно. А еще я работал с диапазонами версий

maven давал мне эту ошибку:

Не удалось разрешить зависимости для проекта MyProject:MyProject:jar:1.0.0: не удалось разрешить конфликт версий между Dependency-A: 1.0.1 -> Dependency-B: 1.1.0 -> Dependency-C: 1.0.0, Dependency- X: 1.0.1 -> Dependency-Y: 1.1.0 -> Dependency-C: 1.0.0, Dependency-I: 1.0.1 -> Dependency-J: 1.1.0 -> Dependency-C: 1.0.0

Я перепробовал все вышеперечисленное, но ничего не помогло, так что...

РЕШЕНИЕ: используйте LATEST в качестве версии во всех зависимостях, поэтому maven не нужно разрешать все зависимости в диапазонах, которые необходимо использовать с осторожностью, потому что, если вы пропустите развертывание одной из зависимостей, сборка завершится ошибкой

Только я предлагаю вам использовать ПОСЛЕДНИЕ, если вы работаете со своими собственными зависимостями, иначе в какой-либо будущей третьей версии вы можете найти некоторые ошибки компиляции или выполнения.

У меня была такая же проблема... решение в конце!

вот журнал затмения:

java.lang.NullPointerException
    at com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.getGaeRuntime(GaeRuntimeManager.java:85)
    at com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.ensureGaeRuntimeWithSdk(GaeRuntimeManager.java:55)
    at com.google.appengine.eclipse.wtp.maven.GaeFacetManager.addGaeFacet(GaeFacetManager.java:59)
    at com.google.appengine.eclipse.wtp.maven.GaeProjectConfigurator.configure(GaeProjectConfigurator.java:46)

... он прибывает из "appengine maven wtp plugin", который пытается получить тип среды исполнения GAE, но здесь он кажется нулевым (... getRuntimeType() -> NPE):

см. класс com.google.appengine.eclipse.wtp.maven/GaeRuntimeManager.java

  private static IRuntime getGaeRuntime(String sdkVersion) {
    IRuntime[] runtimes = ServerCore.getRuntimes();
    for (IRuntime runtime : runtimes) {
      if (runtime != null &&  **runtime.getRuntimeType()**.equals(GAE_RUNTIME_TYPE)) {

Итак, если вы включите Eclipse, Google App Engine будет виден, но когда вы выберете его, вы увидите, что SDK не связан... предпочтения / Сервер / Среды выполнения

РЕШЕНИЕ: красным на скриншоте;-)

Просто еще один возможный источник проблемы!

Я узнал, что в моем случае это было следующее resource блок, который вызвал это:

<project>
    <build>
        <resources>
            <resource>
                <directory>${basedir}/../some-folder</directory>
                <targetPath>outputFolder</targetPath>
            </resource>
        <resources>
    </build>
</project>

Он включал папку из папки проекта (проект eclipse является подпапкой версионной папки проекта).

В моем случае я мог бы устранить ошибку, удалив блок и заменив его вызовом подключаемого модуля Build helper Maven:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.9.1</version>
            <executions>
                <execution>
                    <id>my-own-very-cool-id-for-this-step</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>${basedir}/../some-folder</directory>
                                <targetPath>outputFolder</targetPath>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Я решил эту проблему так: Project -> Clean -> %YOURPROJECT%

Нажмите здесь для изображения

Я столкнулся с этим же симптомом, и ни одно из приведенных выше решений не помогло. Я наконец получил трассировку стека этой проблемы, снова импортировав проект ear в eclipse, и смог отследить это до org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement, который пытался удалить каталог во временном каталоге Windows с именем ".mavenDeploymentDescriptorManagement", который вызвал иррациональное исключение NullPointerException из метода java.io.File.exists(), особенно потому, что код уже успешно проделал то же самое в предыдущем методе с той же переменной, которая затем называлась file.isFile() без проблема.

Проверка этого в файловой системе показала, что доступ к файлу возможен только с правами администратора. Видимо, в какой-то момент я по ошибке запустил затмение из консоли администратора. В конце я просто сделал скрытые файлы видимыми в проводнике Windows и удалил временный файл вручную, что решило проблему.

У меня такая же проблема. Ни одно из решений здесь не сработало. Мне пришлось полностью переустановить затмение и создать новое рабочее пространство. Тогда это сработало!

шаг решения - удалить следующие файлы в папке проекта

.settings

.project

.classpath

У меня была одна и та же проблема в нескольких проектах и ​​нескольких рабочих пространствах, ни одно из решений, которые я нашел в Интернете, не помогло мне. Я использую STS, и единственное, что сработало, - это зайти в мой каталог STS и добавить "-clean" в начало файла STS.ini. Затем вы можете запустить рабочее пространство и запустить maven clean без ошибок. (вы также можете удалить тег -clean из ini-файла, чтобы он не очищался при каждом запуске)

Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам