2009-06-19 54 views
2

我得到一個NullPointerException,我不喜歡它。它是一個具有多個子模塊的較大的版本(它們在maven配置中的差別很小),對於大多數模塊來說它工作起來,但對於某些模塊卻沒有。任何想法可能是什麼問題?Maven程序集插件失敗,出現NullPointerException?

[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

+1爲「而我不喜歡它」 – 2012-12-07 08:23:50

回答

3

查看頭部修訂的第358行,我的猜測是某個地方沒有定義版本。

我並不真的「知道」Maven,但我建議仔細檢查您的版本。當然,我可能沒有看到與您使用的源代碼相同的內容 - 查看實際版本的源代碼,以查看DefaultArtifact.java第358行的內容。

+1

您的想法使我走上了正確的軌道。事實上,我沒有在依賴關係本身中指定版本,因爲我將所有版本聲明移至*父項目*中的依賴關係管理塊,並且版本顯然未得到解決,因爲它被聲明爲範圍,而不是具體版本。我會認爲這是一個錯誤。 – Mauli 2009-06-19 10:10:32

1

如果版本爲不是空像喬恩 - 飛碟表明它可能是一個Maven的實施者 - 插件錯誤: https://issues.apache.org/jira/browse/MENFORCER-156

本質上,Maven的實施者 - 插件(在至少1.3版本)「提出的MavenProject在其聲稱的狀態所有的依賴關係都已解決,但工件文件沒有綁定。「

對我來說,這在1.4.1版本重新發布。

相關問題