代码之家  ›  专栏  ›  技术社区  ›  Mauli

Maven程序集插件失败,出现NullPointerException?

  •  2
  • Mauli  · 技术社区  · 16 年前

    我有一个空指针异常,我不喜欢它。它是一个更大的构建,有几个子模块(它们的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] ------------------------------------------------------------------------
    
    2 回复  |  直到 9 年前
        1
  •  3
  •   Jon Skeet    16 年前

    看一下头部修订版的第358行,我的猜测是某个地方没有定义版本。

    我不太了解Maven,但我建议仔细检查你的版本。当然,我可能看不到与您使用的源代码相同的代码——请查看您实际版本的源代码,以查看defaultartifact.java第358行中的内容。

        2
  •  1
  •   hakamairi    9 年前

    如果版本不是像jon skeet建议的那样为空,则可能是Maven Enforcer插件错误: https://issues.apache.org/jira/browse/MENFORCER-156

    实际上,Maven Enforcer插件(至少在1.3版中)“将 MavenProject 在这种状态下,它声明所有依赖项都已解析,但工件文件没有绑定。”

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