【发布时间】:2011-05-10 12:08:39
【问题描述】:
在 Eclipse Helios 中,m2eclipse 插件在任何运行配置中都不包括本地工作区中的项目。
我已经设置了这个测试场景:
ProjectA
+ src/main/java/a/TestInA.java
+ pom.xml
ProjectB
+ src/main/java/b/TestInB.java ("main()" calls "a.TestInA.main()")
+ pom.xml (includes reference to ProjectA)
在两个项目上都设置了“解决工作区项目中的依赖项”标志。这在编译时工作得很好,即编译器在“b.TestInB”中找到对“a.TestInA”的引用,并且“Maven 依赖项”列表包括对“ProjectA”的引用。但是当我尝试实际运行“b.TestInB”时,我得到了 NoClassDefFoundError:
Exception in thread "main" java.lang.NoClassDefFoundError: a/TestInA
at b.TestInB.main(TestInB.java:13)
Caused by: java.lang.ClassNotFoundException: a.TestInA
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 1 more
确实,系统属性“java.class.path”不包括 ProjectA 的“target/classes”文件夹(或任何其他文件夹)。
这些是我安装的版本:
- Eclipse:Helios Service Release 2(内部版本 ID:20110301-1815)
- m2eclipse: 0.12.1 (build id: 20110112-1712)
【问题讨论】:
-
你如何运行你的应用程序?通过 Maven?
-
我让 Eclipse 使用“运行配置”启动应用程序。此“运行配置”的类路径包括“Maven 依赖项”条目。我使用的任何第三方库都包含在此条目中,但不包含项目依赖项。最重要的是,当我运行一个测试类时,“ProjectA/target/test-classes”是包括...
标签: eclipse maven m2eclipse workspace