在单独的模块中引用Java测试资源
我有一个多模块Maven项目(Spring)。其中一个模块(在单独的模块中引用Java测试资源,java,spring,maven,Java,Spring,Maven,我有一个多模块Maven项目(Spring)。其中一个模块(A)依赖于另一个模块(B)A有测试,这些测试引用B中的类 一切正常 但是,B也有一些特定的配置,仅用于测试。当测试期间A引用B时,只有Main(而不是Test)资源可用 我希望能够参考B的资源 特别是,当在A中运行测试时,我试图引用Spring的B上下文,正如Erik所解释的,解决方案有两个步骤: 模块B的所有测试源和代码(B的src/test/*下的所有内容)都应该打包到一个特殊的工件“testjar”中。这可以通过配置 将以下内容放
A
)依赖于另一个模块(B
)A
有测试,这些测试引用B
中的类
一切正常
但是,B
也有一些特定的配置,仅用于测试。当测试期间A
引用B
时,只有Main(而不是Test)资源可用
我希望能够参考B
的资源
特别是,当在
A
中运行测试时,我试图引用Spring的B
上下文,正如Erik所解释的,解决方案有两个步骤:
src/test/*
下的所有内容)都应该打包到一个特殊的工件“testjar”中。这可以通过配置pom.xml
文件中:
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>
当然,填充占位符只是一个例子。正如Erik所解释的,解决方案有两个步骤:
src/test/*
下的所有内容)都应该打包到一个特殊的工件“testjar”中。这可以通过配置pom.xml
文件中:
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>
当然,填充占位符只是一个例子。在构建
B
时,您可以创建一个“测试jar”。然后A
可以依赖于范围为“test”的范围。有更多的信息。@Erik,我读了这个,所以你提到了这个问题。但是,我需要这样做吗?我可以很好地引用B
,因此A
引用B
已经有了一些机制。。。。当我已经可以引用B
中的逻辑并且现在只需要资源时,我宁愿不必创建JAR。旁注:我在A
starget
文件夹中的任何位置都看不到B
的工件-不确定A
首先如何访问B
,但它确实有效。只需制作一个单独的模块,将所需的资源放入src/main/resources
中,并与scope:test一起使用即可。当构建B
时,您可以创建一个“测试jar”。然后A
可以依赖于范围为“test”的范围。有更多的信息。@Erik,我读了这个,所以你提到了这个问题。但是,我需要这样做吗?我可以很好地引用B
,因此A
引用B
已经有了一些机制。。。。当我已经可以引用B
中的逻辑并且现在只需要资源时,我宁愿不必创建JAR。旁注:我在A
starget
文件夹中的任何地方都看不到B
的工件-不确定A
首先如何访问B
,但它确实工作。只需制作一个单独的模块,将所需的资源放入src/main/resources
中,并与作用域一起使用:test