【问题标题】:Maven assembly plugin fails with NullPointerException?Maven 程序集插件因 NullPointerException 而失败?
【发布时间】:2010-11-04 06:13:25
【问题描述】:

我得到一个 NullPointerException 并且我不喜欢它。它是一个更大的构建,包含几个子模块(它们的 Maven 配置仅略有不同),对于大多数模块它确实有效,但对于某些模块无效。任何想法可能是什么问题?

[INFO] [assembly:assembly]
[INFO] Reading assembly descriptor: src/assemble/all.xml
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] null
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NullPointerException
at org.apache.maven.artifact.DefaultArtifact.equals(DefaultArtifact.java:358)
at java.util.HashMap.put(HashMap.java:376)
at java.util.HashSet.add(HashSet.java:200)
at java.util.AbstractCollection.addAll(AbstractCollection.java:305)
at org.apache.maven.plugin.assembly.artifact.DefaultDependencyResolver.buildManagedVersionMap(DefaultDependencyResolver.java:160)
at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:179)
at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:370)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:553)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:523)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:268)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 41 seconds
[INFO] Finished at: Fri Jun 19 10:44:03 CEST 2009
[INFO] Final Memory: 32M/99M
[INFO] ------------------------------------------------------------------------

【问题讨论】:

  • +1 表示“我不喜欢它”

标签: java maven-2 build nullpointerexception


【解决方案1】:

查看头部修订的第 358 行,我的猜测是,某处没有定义版本。

我并不真正“了解”Maven,但我建议仔细检查您的版本。当然,我可能没有查看与您使用的源代码相同的源代码 - 查看您的实际版本的源代码以了解 DefaultArtifact.java 第 358 行的内容。

【讨论】:

  • 你的想法让我走上了正轨。实际上,我没有在依赖项本身中指定版本,因为我将所有版本声明移至 父项目 中的依赖项管理块,并且该版本显然没有得到解决,因为它被声明为范围,而不是具体版本。我会认为这是一个错误。
  • 谢谢,我遇到了同样的问题。原来我的 pom 文件的版本设置为未定义的 application.property。
【解决方案2】:

如果版本不像 Jon-skeet 建议的那样为空,则可能是 maven-enforcer-plugin 错误: https://issues.apache.org/jira/browse/MENFORCER-156

本质上,maven-enforcer-plugin(至少在 1.3 版中)“将MavenProject 置于声称已解决所有依赖项但工件文件未绑定的状态。”

对我来说,这在 1.4.1 版本中再次出现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2016-04-10
    • 1970-01-01
    • 2015-12-19
    • 2018-12-23
    相关资源
    最近更新 更多