Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在单独的模块中引用Java测试资源_Java_Spring_Maven - Fatal编程技术网

在单独的模块中引用Java测试资源

在单独的模块中引用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”中。这可以通过配置 将以下内容放

我有一个多模块Maven项目(Spring)。其中一个模块(
A
)依赖于另一个模块(
B
A
有测试,这些测试引用
B
中的类

一切正常

但是,
B
也有一些特定的配置,仅用于测试。当测试期间
A
引用
B
时,只有Main(而不是Test)资源可用

我希望能够参考
B
的资源


特别是,当在
A

中运行测试时,我试图引用Spring的
B
上下文,正如Erik所解释的,解决方案有两个步骤:

  • 模块B的所有测试源和代码(B的
    src/test/*
    下的所有内容)都应该打包到一个特殊的工件“testjar”中。这可以通过配置
  • 将以下内容放入B的
    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所解释的,解决方案有两个步骤:

  • 模块B的所有测试源和代码(B的
    src/test/*
    下的所有内容)都应该打包到一个特殊的工件“testjar”中。这可以通过配置
  • 将以下内容放入B的
    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
    s
    target
    文件夹中的任何位置都看不到
    B
    的工件-不确定
    A
    首先如何访问
    B
    ,但它确实有效。只需制作一个单独的模块,将所需的资源放入
    src/main/resources
    中,并与scope:test一起使用即可。当构建
    B
    时,您可以创建一个“测试jar”。然后
    A
    可以依赖于范围为“test”的范围。有更多的信息。@Erik,我读了这个,所以你提到了这个问题。但是,我需要这样做吗?我可以很好地引用
    B
    ,因此
    A
    引用
    B
    已经有了一些机制。。。。当我已经可以引用
    B
    中的逻辑并且现在只需要资源时,我宁愿不必创建JAR。旁注:我在
    A
    s
    target
    文件夹中的任何地方都看不到
    B
    的工件-不确定
    A
    首先如何访问
    B
    ,但它确实工作。只需制作一个单独的模块,将所需的资源放入
    src/main/resources
    中,并与作用域一起使用:test