Java 哈德逊没有';不使用Maven生成的类路径?

Java 哈德逊没有';不使用Maven生成的类路径?,java,hudson,maven,classpath,Java,Hudson,Maven,Classpath,我试图在运行时搜索项目中的类路径。我们使用Maven进行构建管理,使用Hudson进行CI。当然,在我本地的盒子上,一切都很好。然而,当Hudson运行单元测试时,它找不到在构建期间生成的类——Maven应该将它们放在/target/classes中,但是当我从Hudson记录类路径(System.getProperty(“java.class.path”))时,它只给我一个包含两个与Maven相关的JAR的列表——根本没有目录,当然不是当前项目的编译器输出目录。这是哈德逊的错吗?马文的?我走错

我试图在运行时搜索项目中的类路径。我们使用Maven进行构建管理,使用Hudson进行CI。当然,在我本地的盒子上,一切都很好。然而,当Hudson运行单元测试时,它找不到在构建期间生成的类——Maven应该将它们放在
/target/classes
中,但是当我从Hudson记录类路径(
System.getProperty(“java.class.path”)
)时,它只给我一个包含两个与Maven相关的JAR的列表——根本没有目录,当然不是当前项目的编译器输出目录。这是哈德逊的错吗?马文的?我走错方向了吗


ETA:我想这可能是通过升级Hudson使用的Maven运行时解决的。问题是我们通过反射寻找插件类,类似于中的想法——不是实际的代码,但它提供了想法。无论如何,听起来Hudson使用的类路径只“引导”了实际的测试工具;不管出于什么原因,它现在似乎已经修好了。长话短说:如果您有类似的问题,请尝试升级您的Maven。

两个修复程序。第一,升级Maven。第二,不要依赖类路径黑客来迭代你的类加载器可以看到的东西,这是描述中链接的“资源发现”技巧。

到底是什么问题?测试是否因类路径错误而失败?您是否在使用maven的Hudson作业中构建您的工件?如果是,为什么不使用maven立即运行单元测试呢?会很有魅力的。一切都由maven管理,因此没有类路径问题。如果出于任何原因,您有两个构建步骤,第一个构建应用程序,第二个测试应用程序,请注意在以下构建步骤中无法访问对类路径的修改。--顺便说一下,您可以使用参数
-Dmaven.test.skip=true
跳过dev机器上的单元测试。