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

Java maven为不同的目标设置了什么样的类路径?你能提供官方文件的链接吗?,java,maven,jenkins,classpath,maven-3,Java,Maven,Jenkins,Classpath,Maven 3,Maven为不同的目标设置了什么样的类路径 我的问题:我在詹金斯有一个项目。它从SVN中检出。接下来,将另一个文件签出到工作区根目录/mydir/my.properties 然后,maven测试运行 在测试中,类通过在类路径上搜索来加载文件。为什么会这样? (我是詹金斯和马文的新手,正在努力弄清楚我正在寻找的工作是如何运作的…) 类通过在类路径上搜索来加载文件。为什么会这样 因为这就是maven的设计目的。它知道您的依赖关系,因为您设置了它们,并对正在构建的模块的结构进行了假设,例如,将添加sr

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

我的问题:我在詹金斯有一个项目。它从SVN中检出。接下来,将另一个文件签出到
工作区根目录/mydir/my.properties

然后,
maven测试运行

在测试中,类通过在类路径上搜索来加载文件。为什么会这样? (我是詹金斯和马文的新手,正在努力弄清楚我正在寻找的工作是如何运作的…)

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

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

Maven使用项目中定义的
将它们放在插件的类路径中。此外,在每个插件的
部分,您可以定义额外的
,这些插件只能使用(因此不会以任何方式成为最终工件的一部分,也不会在
mvn dependency:tree
上可见)

关于测试,重要的是要知道:

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

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

  • 在执行测试时,
    maven-surefire插件
    通常会将您的测试分叉到单独的类加载器中


检查链接。

唯一的问题是,我的工作区如下所示:/mydir、/src、/target、/pom.xml。现在,我记得有一个红色的地方,maven将您的代码和依赖项(即/src和repository文件夹)放在类路径上(您是否有一个指向该文档的链接,可能吗?我在官方网站上搜索“classpath”找不到它),但它没有解释/mydir是如何在那里结束的…@Christian它没有添加
/src
或您提到的其他内容,但它将编译
/src/main/java
,并将编译的所有内容添加到类路径中。根据来自的建议,我在测试运行时回显了类路径:对于目标
测试
,它似乎添加了/target/test cl>asses、target/classes和本地存储库文件夹中的依赖项。因此,仍然不知道/mydir是如何在其中实现的…:(哎哟,我刚刚意识到我在源代码的某个地方走错了方向。显然,代码使用了Spring的org.springframework.core.io.FileSystemResource()…很抱歉让我看到西红柿…只是澄清一下:
src/main/resources
src/test/resources
没有添加到类路径中。真正发生的是这两个目录下的资源被复制(分别)到
目标/类
目标/测试类
。这两个目录是放置在类路径上的实际目录。