mvn idea:idea抛出NullPointerException

时间:2016-09-03 08:11:12

标签: maven intellij-idea nullpointerexception maven-3

我正在尝试在项目中执行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

此处的链接为 -

  

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

也不确定维护者,在SO上寻求帮助。

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

mvn idea:module

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

  

[错误]无法执行目标   org.apache.maven.plugins:maven-idea-plugin:2.2.1:module(default-cli)   在项目核心上:执行default-cli of goal   org.apache.maven.plugins:maven-idea-plugin:2.2.1:模块失败。   的NullPointerException

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

1 个答案:

答案 0 :(得分:7)

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项目并逐步(复制和粘贴)重新创建一个无法导入的项目:很可能会出现问题或者它只是按预期工作。