【问题标题】:mvn idea:idea throws a NullPointerExceptionmvn idea:idea 抛出 NullPointerException
【发布时间】:2017-01-11 07:09:27
【问题描述】:

当我尝试在我的项目中执行 mvn idea:idea -X 时。我面临一个特殊的问题 -

> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-idea-plugin:2.2.1:idea (default-cli) on
> project test-model: Execution default-cli of goal
> org.apache.maven.plugins:maven-idea-plugin:2.2.1:idea failed.
> NullPointerException -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
> execute goal org.apache.maven.plugins:maven-idea-plugin:2.2.1:idea
> (default-cli) on project document-model: Execution default-cli of goal
> org.apache.maven.plugins:maven-idea-plugin:2.2.1:idea failed.
>         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
>         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
>         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
>         at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
>         at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
>         at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
>         at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
>         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
>         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:497)
>         at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
>         at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
>         at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
>         at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution
> default-cli of goal
> org.apache.maven.plugins:maven-idea-plugin:2.2.1:idea failed.
>         at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
>         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
>         ... 20 more Caused by: java.lang.NullPointerException
>         at org.apache.maven.repository.legacy.DefaultWagonManager.connectWagon(DefaultWagonManager.java:244)
>         at org.apache.maven.repository.legacy.DefaultWagonManager.getRemoteFile(DefaultWagonManager.java:346)
>         at org.apache.maven.repository.legacy.DefaultWagonManager.getArtifact(DefaultWagonManager.java:110)
>         at org.apache.maven.repository.legacy.DefaultWagonManager.getArtifact(DefaultWagonManager.java:163)
>         at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:155)
>         at org.apache.maven.plugin.idea.IdeaModuleMojo.resolveClassifiedArtifact(IdeaModuleMojo.java:966)
>         at org.apache.maven.plugin.idea.IdeaModuleMojo.resolveClassifier(IdeaModuleMojo.java:929)
>         at org.apache.maven.plugin.idea.IdeaModuleMojo.rewriteDependencies(IdeaModuleMojo.java:587)
>         at org.apache.maven.plugin.idea.IdeaModuleMojo.rewriteModule(IdeaModuleMojo.java:409)
>         at org.apache.maven.plugin.idea.IdeaMojo.rewriteModule(IdeaMojo.java:220)
>         at org.apache.maven.plugin.idea.IdeaMojo.execute(IdeaMojo.java:200)
>         at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
>         ... 21 more [ERROR]  [ERROR]  [ERROR] For more information about the errors and possible solutions, please read the following
> articles: [ERROR] [Help 1]
> http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

这里的链接是——

如果插件执行失败,则会报告此错误 一些不可预见的事件。例如,未捕获的运行时异常 由插件引起的将引发此错误。你应该报告这个 插件维护者的问题。

也不确定维护者,在这里寻求一些帮助。


更新 1 按照@A_Di-Matteo 在答案中提到的步骤,我可以确定故障发生在步骤

mvn idea:module

对我来说有类似的堆栈跟踪

[ERROR] 未能执行目标 org.apache.maven.plugins:maven-idea-plugin:2.2.1:module (default-cli) 关于项目核心:执行目标的default-cli org.apache.maven.plugins:maven-idea-plugin:2.2.1:module 失败。 空指针异常

再次强调这一点,有没有办法解决它?

【问题讨论】:

  • 您是否尝试过在 IntelliJ 中导入父 POM,而不是使用 Maven 创建项目元数据? IntelliJ 无缝支持 Maven 项目,为什么不使用它呢? ;)
  • @BastienJansen - 我已经在使用它了,猜它没有帮助。

标签: maven intellij-idea nullpointerexception maven-3


【解决方案1】:

maven-idea-plugin停用,自 2013 年以来不再维护(实际上自 2008 年以来一直处于非活动状态),因此与新版本 IDE 的任何可能不兼容都会阻止其使用。

如果由于任何原因您仍然通过idea:idea 目标寻求帮助,出现错误,您可以尝试不同的procedure

mvn idea:clean
mvn idea:project    ---> it will create the .ipr file (core project info)
mvn idea:module     ---> it will create the .iml file (library info for the module)
mvn idea:workspace  ---> it will create the .iws file (personal workspace info)

最后三个命令实际上已经由 idea:idea 自动执行,但它们可能会帮助您进一步检查错误出现的时间点,并希望提供进一步的故障排除提示。但是,所有这些文件都被 IDE 视为legacy files,因此这又不是理想的过程。

不过,这也可能很麻烦:该插件很可能不再与较新版本的 IDE 兼容。

如果直接导入父pom.xml文件不会导入项目,那么:

  • 您可以将该项目作为通用 Java 项目导入,然后 convert it to Maven project
  • 或者(作为最坏的情况)您可以在 IDE 中创建一个新的 Maven 项目,然后逐步(复制和粘贴)重新创建一个无法导入的项目:很可能会出现问题或者它会只需按预期工作即可。

【讨论】:

  • 感谢帮助缩小范围,更新问题。但仍然寻找解决方案比简单地复制到另一个项目更好。
  • @nullpointer 好的,它在idea:module 上失败了,但是idea:workspace 工作了吗?此外,您是否尝试在已生成 .ipr 文件的情况下导入它?将其作为通用 Java 项目导入,然后convert it to Maven 呢?
  • idea:workspace 执行成功。将项目作为通用导入和转换有什么帮助?此外,对我拥有的所有项目都这样做是不切实际的。不是吗?
  • @nullpointer 然后您尝试使用idea:projectidea:workspace 成功导入它吗?转换有助于解决最初的问题(您可能会得到一些提示、进一步的错误,或者只是将 IDE 生成的文件与您拥有的文件进行比较,等等)。
  • 您能否缩小我们尝试前进的方向?因为正如我所说,转换所有项目是不可行的。仅供参考,我尝试了其中一个项目。但我看不出它在这里有什么帮助。
猜你喜欢
  • 1970-01-01
  • 2012-08-07
  • 2017-08-11
  • 2013-09-07
  • 2013-06-18
  • 2016-07-07
  • 2014-10-02
  • 2012-05-21
  • 2014-08-15
相关资源
最近更新 更多