我正在开发一个Java EE Web项目。当我尝试添加依赖项时,会出现此错误消息。我使用Eclipse Kepler。
在“更新Maven项目”期间发生内部错误。java.lang.NullPointerException
你可以帮帮我吗?谢谢。
我正在开发一个Java EE Web项目。当我尝试添加依赖项时,会出现此错误消息。我使用Eclipse Kepler。
在“更新Maven项目”期间发生内部错误。java.lang.NullPointerException
你可以帮帮我吗?谢谢。
Answers:
通过删除项目中的.settings
文件夹和.project
文件,然后重新导入项目,我解决了我的问题。
对我来说,用户Maneesh Godbole在CodeRanch上找到了答案 :
- 月蚀。
- 导航到“工作区”文件夹
- 确保操作系统上的用于查看隐藏文件的设置已打开
- 识别并删除.metadata目录
- 重新开始蚀
- 导入项目
在这个问题的实例中,我们有一些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->更新项目...时,这将导致报告的NullPointerException,而没有堆栈跟踪。当使用全新的Import ...-> Existing Maven项目时,发生了相同的异常,但是堆栈跟踪使我找到了上面的内容。
(这是Eclipse Luna Service Release 2(4.4.2)中的m2e 1.6.1.20150625-2338。)
org.eclipse.m2e.core.prefs文件位于.settings文件夹中。如果您面对的问题
An internal error occurred during: "Updating Maven Project". java.lang.NullPointerException
从Eclipse中删除项目,然后删除项目中的.settings文件夹和.project文件->然后重新导入该项目。
Eclipse有一个错误日志。在那里,您将看到完整的堆栈跟踪。就我而言,这似乎是由于jar文件错误以及java.util.zip库没有抛出适当的异常(仅仅是NullPointerException)而引起的。
我正在使用:
用于Web开发人员的Eclipse Java EE IDE。
版本:Neon.3 Release(4.6.3)Build ID:20170314-1500
对我而言,修复/技巧是删除〜/ .m2 / repository中的本地存储库,以便删除本地依赖关系,并重建其中下拉了新依赖关系的项目。
在我看来,根本问题是.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)
...它来自试图获取GAE运行时类型的“ appengine maven wtp插件”,但此处似乎为空(... 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 ...
解决方案: 屏幕截图上的红色;-)
我遇到了相同的症状,以上解决方案均无济于事。我终于通过再次导入ear项目以进行蚀来对问题进行堆栈跟踪,并能够将其跟踪到org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement,该尝试试图删除Windows临时目录中的目录“ “ .mavenDeploymentDescriptorManagement”,它导致java.io.File.exists()方法出现非理性的NullPointerException,特别是因为代码已经成功地在以前的方法中使用了相同的变量,然后调用了file.isFile()而不执行相同的操作问题。
在文件系统上进行检查后发现,该文件只能以管理员权限访问。显然,我有时是错误地从管理员控制台启动了Eclipse。最后,我只是使隐藏文件在Windows资源管理器中可见,并手动删除了临时文件,从而解决了该问题。
问题的另一个可能原因!
我发现在我的情况下是由以下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>
在我的情况下,问题是其他依赖项使用了派生的依赖项冲突,并且某些派生的依赖项版本不可用,可能是因为我忘了做一些部署,因为使用工作空间解析,一切正常,但是在移动时到其他环境突然全部崩溃了。而且我也在使用版本范围
专家给我这个错误:
无法解决项目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不需要解析范围内的所有依赖项,必须谨慎使用,因为如果您错过部署其中一个依赖项,构建将会失败
仅当您使用自己的依赖项时,我才建议您使用LATEST,否则在某些第三方将来的版本中,您可能会发现一些编译或运行时错误
上面的解决方案对我不起作用,因为开放JDK 13版本的问题 https://github.com/spotify/dockerfile-maven/issues/163 所以我降级为打开JDK8,它对我有用