设置compileSourceRoots时,Maven不执行任何测试

问题描述 投票:0回答:1

我将一个包含生成类的目录添加到我的 Maven 配置中。这会导致 Maven 停止执行测试。这是 pom.xml 中包含编译器插件的部分。

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${compiler-plugin.version}</version>
    <configuration>
      <compileSourceRoots>
        <compileSourceRoot>${project.basedir}/src/main/java</compileSourceRoot>
        <compileSourceRoot>${project.basedir}/src/main/resources</compileSourceRoot>
        <compileSourceRoot>${project.build.directory}/generated-sources/openapi/src/gen/java</compileSourceRoot>
      </compileSourceRoots>
    </configuration>
  </plugin>

当调用maven时(例如

mvn clean package
),会执行测试阶段,但不会运行任何测试。

maven maven-compiler-plugin
1个回答
0
投票

问题是,该配置也在 testCompile 阶段使用,因此没有编译测试类。然后,surefire 发现没有要执行的测试。

解决方案是仅在编译阶段更改配置:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${compiler-plugin.version}</version>
    <executions>
      <execution>
        <id>default-compile</id>
        <goals>
          <goal>compile</goal>
        </goals>
        <configuration>
          <compileSourceRoots>
            <compileSourceRoot>${project.basedir}/src/main/java</compileSourceRoot>
            <compileSourceRoot>${project.basedir}/src/main/resources</compileSourceRoot>
            <compileSourceRoot>${project.build.directory}/generated-sources/openapi/src/gen/java</compileSourceRoot>
          </compileSourceRoots>
        </configuration>
      </execution>
    </executions>
  </plugin>
© www.soinside.com 2019 - 2024. All rights reserved.