maven为不同的目标设置了什么类路径?你能提供官方文档的链接吗?

时间:2014-06-25 15:29:11

标签: java maven jenkins classpath maven-3

Maven为不同的目标设置了类路径是什么?

我的问题:我有一个我在Jenkins建立的项目。它从SVN签出。接下来,将另一个文件签出到workspace-root/mydir/my.properties

然后,maven test运行。

在测试中,类通过在类路径上搜索来加载文件。为什么这样做? (我是Jenkins和maven的新手,我正试图弄清楚我正在看的工作是如何起作用的......)

2 个答案:

答案 0 :(得分:1)

Maven使用项目中定义的<dependencies/>将它们放在插件的类路径中。此外,在每个插件的<plugin/>部分中,您可以定义仅供插件使用的其他<dependencies/>(因此不会以任何方式成为最终工件的一部分,或者在mvn dependency:tree)。

关于测试,了解以下内容非常重要:

  • src/main/resourcessrc/test/resources下的资源分别被复制到target/classestarget/test-classes。这两个目录将添加到您的类路径中。 (这同样适用于src/main/javasrc/test/java)。

  • 每个Maven插件都在其自己的类加载器中执行。

  • 执行测试时,maven-surefire-plugin通常会将测试分成单独的类加载器。

检查this链接。

答案 1 :(得分:0)

  

类通过在类路径上搜索来加载文件。为什么这样做?

因为这是maven的目的。它知道你的依赖关系,因为你设置它们并假设你正在构建的模块的结构,例如将添加src / main / resources,并将所有这些添加到类路径中。