首页 > 解决方案 > 使用来自目标/测试类的类

问题描述

我是 Java/Maven 的新手。我有一个标准的 maven 项目结构,并且我编写了一些我想在一些测试脚本中使用的辅助类,这些类位于src/test/java. 完成后mvn clean install,我可以看到那些类在target/test-classes,但是在我的脚本中,虽然我使用了target目录的绝对路径,但CLASSPATH我看到了一个Could not find or load main class ....

例如,我有src/test/java/validation/CrossValidator.java,并且在我正在使用的脚本中,目录的绝对路径java -cp $CLASSPATH validation.CrossValidator ...在哪里。CLASSPATHtarget

任何人都可以指导我完成这个吗?我知道我可以简单地将这些类移动到src/java/main,但我不希望这些类成为库的一部分jar,因为它们在运行时不使用。

提前致谢。

标签: javamavenbuild

解决方案


您可以添加从项目构建测试 jar 的 maven-jar-plugin 的辅助执行:

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
      <execution>
        <goals>
          <goal>test-jar</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

这将创建一个test-jar包含所有测试类的分类器的 jar。

更多细节可以在创建测试 JAR中找到。


推荐阅读