Ответ 1
Я решил решить проблему, удалив папку .settings
и .project
в проекте, а затем повторно импортирую проект.
Я разрабатываю веб-проект Java EE. Когда я пытаюсь добавить зависимость, появляется это сообщение об ошибке. Я использую Eclipse Kepler.
Внутренняя ошибка произошла во время: "Обновление проекта Maven". java.lang.NullPointerException
Не могли бы вы мне помочь? Спасибо.
Я решил решить проблему, удалив папку .settings
и .project
в проекте, а затем повторно импортирую проект.
Для меня работал ответ, который я нашел на CodeRanch, пользователем Maneesh Godbole:
- Закрыть eclipse.
- Перейдите в папку "Рабочая область"
- Убедитесь, что настройка на вашей ОС для просмотра скрытых файлов включена.
- Идентифицировать и удалять каталог. metadatali >
- Перезапустить eclipse
- Импорт проекта
У меня была такая же проблема в одном из моих модулей.
Запуск "mvn eclipse: eclipse" в консоли /cmd решил проблему для меня.
В нашем примере этой проблемы у нас были файлы 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 без трассировки стека. При использовании нового импорта... → Существующие проекты Maven, произошло то же самое исключение, но с трассировкой стека, которая заставила меня найти выше.
(Это с m2e 1.6.1.20150625-2338 в Eclipse Luna Service Release 2 (4.4.2).)
В случае, если это помогает кому-либо, кроме удаления .settings
и .project
, мне пришлось удалить .classpath
и .factorypath
, прежде чем сможете успешно импортировать проект в Eclipse.
файл org.eclipse.m2e.core.prefs находится в папке .settings. Если вы столкнулись с проблемой
An internal error occurred during: "Updating Maven Project". java.lang.NullPointerException
Удалите проект из eclipse, а затем удалите папку .settings и .project в проекте → , затем повторно импортируйте проект.
Это помогло мне: Project menu -> Clean... -> clean all projects
удаление локального хранилища maven помогло мне
Eclipse имеет журнал ошибок. Там вы увидите полную трассировку стека. В моем случае это, по-видимому, вызвано плохим файлом jar в сочетании с java.util.zip libs, не генерирующим правильное исключение, просто исключение NullPointerException.
Я использую:
Eclipse Java EE IDE для веб-разработчиков.
Версия: Neon.3 Release (4.6.3) Идентификатор сборки: 20170314-1500
Исправление/хитрость для меня было удаление моего локального репозитория в ~/.m2/repository, чтобы удалить локальные зависимости и перестроить мой проект, в котором новые зависимости были удалены.
У меня была та же проблема. Ни одно из решений здесь не работало. Мне пришлось полностью переустановить eclipse и создать новое рабочее пространство. Тогда это сработало!
Ни один из вышеперечисленных методов не работал у меня. Это может также возникнуть из-за наличия циклической зависимости в рабочем пространстве eclipse. Поэтому, если в любом из других проектов в вашей рабочей области есть какие-либо другие ошибки, попробуйте исправить их, и тогда эта проблема исчезнет. Вот как я устранил ошибку.
У меня была такая же проблема для нескольких проектов и нескольких рабочих областей, ни одно из решений, которые я нашел в Интернете, не работало для меня. Я использую STS, и единственное, что работало, это войти в мой каталог STS и добавить "-clean" в начало файла STS.ini. Затем вы можете запустить свое рабочее пространство и запустить maven без ошибок. (вы также можете удалить тег -clean из ini файла, чтобы он не очищался каждый раз, когда вы его запускали)
Надеюсь, это поможет кому-то.
Коренной проблемой в моем случае был конфликт файлов в папке .settings. Таким образом, удаление папки .settings разрешило бы ошибку Maven, но я хотел сохранить некоторые из моих локальных файлов конфигурации. Я разрешил конфликт, а затем снова попробовал обновление 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, но здесь он здесь null (... 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 не связан...
РЕШЕНИЕ: на красном на снимке экрана; -)
Я столкнулся с этим же симптомом, и ни одно из вышеперечисленных решений не помогло. Я наконец получил трассировку стека проблемы, импортируя проект уха снова, чтобы затмить, и смог проследить это до org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement, который пытался удалить каталог в каталоге временных файлов Windows под названием ".mavenDeploymentDescriptorManagement", что вызвало иррациональное исключение NullPointerException из метода java.io.File.exists(), особенно потому, что код уже успешно выполнил то же самое в предыдущем методе с той же переменной, а затем вызвал file.isFile() без проблема.
Проверка этого файла в файловой системе показала, что доступ к файлу возможен только с правами администратора. По-видимому, я в какой-то момент запустил eclipse с консоли администратора по ошибке. В конце я только что сделал скрытые файлы видимыми в Windows Explorer и удалил временный файл вручную, что решило проблему.
Еще один возможный источник проблемы!
Я узнал, что в моем случае это был следующий resource
блок, который вызвал его:
<project>
<build>
<resources>
<resource>
<directory>${basedir}/../some-folder</directory>
<targetPath>outputFolder</targetPath>
</resource>
<resources>
</build>
</project>
В него включена папка из папки проекта (проект eclipse - это подпапка папки с версией проекта).
В моем случае я мог удалить ошибку, удалив блок и заменив его вызовом Помощник сборки Плагин 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>
Мне пришлось переустановить eclipse, удалить папку .m2 и перестроить банки.
В моем случае проблема заключалась в конфликте производных зависимостей, которые использовались другими зависимостями, и некоторые из этих версий производных зависимостей были недоступны, возможно, потому, что некоторые развертывания, которые я забыл сделать, потому что с разрешением рабочей области все работало, но при перемещении в другой среде все внезапно сломалось. А также я работал с диапазонами версий
maven давал мне эту ошибку:
Не удалось разрешить зависимости для проекта MyProject: MyProject: jar: 1.0.0: Не удалось разрешить конфликт версий между Зависимостью-A: 1.0.1 → Зависимость-B: 1.1.0 → Зависимость-C: 1.0.0, Зависимость- X: 1.0.1 → Зависимость-Y: 1.1.0 → Зависимость-C: 1.0.0, Зависимость-I: 1.0.1 → Зависимость-J: 1.1.0 → Зависимость-C: 1.0.0
Я перепробовал все выше и ничего не получалось, так что...
РЕШЕНИЕ: используйте LATEST в качестве версии во всех зависимостях, поэтому maven не нужно разрешать все зависимости в диапазонах, которые следует использовать с осторожностью, потому что, если вы пропустите развертывание одной из зависимостей, сборка не удастся