当前位置: 首页 > 面试题库 >

Maven:如何处理生成的测试源(仅)?

皇甫敏达
2023-03-14
问题内容

通常,应在目标目录中创建生成的源。但是,如何处理仅用于测试的类?我不希望这些类打包在我的jar中。有解决这种情况的通用方法吗?


问题答案:

使用maven build helper插件的add-test-source目标将生成的测试源文件添加到build->
http://mojo.codehaus.org/build-helper-maven-plugin/add-test-source-
mojo.html

它确保test-compile在构建阶段,编译器插件会自动选择此目标添加的目录。

编辑

这是如何使用cxf-codegen-plugin为testign生成代码的示例

<build>
  <plugins>
    ...
    <plugin>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-codegen-plugin</artifactId>
      <version>${cxf.version}</version>
      <executions>
        <execution>
          <id>generate-test-sources</id>
          <phase>generate-test-sources</phase>
          <configuration>
            <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
            <wsdlOptions>
              <wsdlOption>
                <wsdl>${basedir}/src/main/wsdl/myService.wsdl</wsdl>
              </wsdlOption>
            </wsdlOptions>
          </configuration>
          <goals>
            <goal>wsdl2java</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <version>${build-helper-maven-plugin.version}</version>
      <executions>
        <execution>
          <id>add-test-sources</id>
          <phase>generate-test-sources</phase>
          <goals>
            <goal>add-test-source</goal>
          </goals>
          <configuration>
            <sources>
              <source>${project.build.directory}/generated/cxf</source>
            </sources>
          </configuration>
        </execution>
      </executions>
    </plugin>
    ...
  </plugins>
</build>


 类似资料:
  • 我在单元测试用例中使用Mockito和Power Mockito。当我运行配置文件代码时,我能够生成jacoco报告,但是 当我在测试阶段试图生成Jacoco报告时,我遇到了错误 错误[错误]无法执行目标组织。jacoco:jacoco maven插件:0.8.2:project testproject api上的报告(默认报告):生成jacoco报告时出错:创建报告时出错:分析d:\worksp

  • https://github.com/niltz/so-51090868-示例 当我使用maven在命令行上运行构建时,它似乎运行得很好,但当我将pom导入Spring工具套件时,我就发现了问题。

  • 我有一些使用Querydsl进行单元测试的测试类。Querydsl通常会生成查询类型的类,但如果类位于测试目录中,则不会生成该类。只要我把文件放入src/main并用maven编译,它就能正常工作。因为我只在测试中使用这些类,所以我不想把这些文件放在这个目录中。有人能帮我吗? 我的目录结构 src/main/java src/main/resources src/test/java/ src/te

  • 问题内容: 当我使用命令:mvn test时,maven使用主要资源而不是src / test / resources中的测试资源。 我如何才能使Maven使用测试资源而不是主要资源? 编辑:我使用Classloader查找我的资源。Classloader可以从我的src / test / resources目录中找到资源,但是它首先在src / main / java中查找该资源。 还是在运行将

  • 我总是在Jest测试中得到“localstorage is not defined”,这很有意义,但我有什么选择呢?撞上砖墙。

  • 我有一个Maven插件,它为我的java项目生成源代码,并将它们放在“target/generated sources”文件夹中。我在编译时需要这些源代码。我想在我的项目中有它们,同时修改它,已经生成。当然,我想把它们放在“src”文件夹下的正确文件夹中,而不是放在“target/generated sources”文件夹中。我如何使用Maven来组织它? 换句话说,我希望能够: > 通过运行我的