Внутренняя ошибка произошла во время: "Обновление проекта Maven". java.lang.NullPointerException
Я занимаюсь разработкой веб-проекта Java EE. Когда я пытаюсь добавить зависимость, появляется это сообщение об ошибке. Я использую Eclipse Kepler.
Внутренняя ошибка произошла во время: "Обновление проекта Maven". java.lang.NullPointerException
Не могли бы вы помочь мне? Спасибо.
24 ответа
Я решил мой, удалив .settings
папка и .project
файл в проекте, а затем повторно импортировать проект.
Для меня сработал ответ, который я нашел на CodeRanch, от пользователя Maneesh Godbole:
- Закрыть затмение.
- Перейдите в папку "Рабочая область"
- Убедитесь, что в вашей ОС включена настройка просмотра скрытых файлов
- Определите и удалите каталог.metadata
- Перезапустите затмение
- Импортировать проект
У меня была такая же проблема в одном из моих модулей.
Запуск "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, чтобы удалить локальные зависимости, и перестроении моего проекта, в котором были удалены новые зависимости.
Eclipse имеет журнал ошибок. Там вы увидите полную трассировку стека. В моем случае это, кажется, вызвано плохим файлом jar, объединенным с библиотеками java.util.zip, которые не вызывают правильное исключение, только исключение NullPointerException.
Ни один из вышеперечисленных методов не работал для меня. Это также может возникнуть из-за наличия циклической зависимости в вашем рабочем пространстве затмения. Поэтому, если есть какие-либо другие ошибки, присутствующие в любом из других проектов в вашей рабочей области, попробуйте исправить их, и эта проблема исчезнет. Вот как я устранил ошибку.
Избегайте удаления папки .metadata, поскольку она очищает все настройки, запускает конфигурации. Вместо этого переименуйте папку .metadata -> Перезапустить eclipse -> Импортировать проект
Мне пришлось переустановить Eclipse, удалить папку.m2 и пересобрать банки.
Основной проблемой в моем случае был конфликт файлов в папке.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 и удалил временный файл вручную, что решило проблему.
У меня такая же проблема. Ни одно из решений здесь не сработало. Мне пришлось полностью переустановить затмение и создать новое рабочее пространство. Тогда это сработало!
У меня была одна и та же проблема в нескольких проектах и нескольких рабочих пространствах, ни одно из решений, которые я нашел в Интернете, не помогло мне. Я использую STS, и единственное, что сработало, - это зайти в мой каталог STS и добавить "-clean" в начало файла STS.ini. Затем вы можете запустить рабочее пространство и запустить maven clean без ошибок. (вы также можете удалить тег -clean из ini-файла, чтобы он не очищался при каждом запуске)
Надеюсь, это кому-нибудь поможет.