Maven为不同的目标设置类路径是什么?
我的问题:我在詹金斯(Jenkins)建立了一个项目。它从SVN中检出。接下来,将另一个文件检出到workspace- root/mydir/my.properties
workspace- root/mydir/my.properties
然后,maven test运行。
maven test
在测试中,类通过在类路径上搜索文件来加载文件。为什么行得通?(我是Jenkins和Maven的新手,正试图弄清我正在寻找的工作是如何工作的…)
Maven使用<dependencies/>项目中定义的内容,将它们放在插件的类路径中。此外,<plugin/>您可以在每个插件的部分中定义<dependencies/>仅由插件使用的其他内容(因此不会以任何方式成为最终工件的一部分,也不会在上可见mvn dependency:tree)。
<dependencies/>
<plugin/>
mvn dependency:tree
关于测试,重要的是要知道:
src/main/resources和下的资源src/test/resources分别复制到target/classes和中target/test-classes。这两个目录将添加到您的类路径中。(对src/main/java和有效src/test/java)。
src/main/resources
src/test/resources
target/classes
target/test-classes
src/main/java
src/test/java
每个Maven插件都在其自己的类加载器中执行。
执行测试时,maven-surefire-plugin通常会将您的测试存储到单独的类加载器中。
maven-surefire-plugin
检查此链接。