java - 使用来自目标/测试类的类
问题描述
我是 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 ...
在哪里。CLASSPATH
target
任何人都可以指导我完成这个吗?我知道我可以简单地将这些类移动到src/java/main
,但我不希望这些类成为库的一部分jar
,因为它们在运行时不使用。
提前致谢。
解决方案
您可以添加从项目构建测试 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中找到。
推荐阅读
- c++ - SDL_PollEvent 有时在屏幕重新连接后不捕获触摸事件
- jinja2 - 在 Apache Airflow 的 S3KeySensor 中模板化 `bucket_key`
- apache - Apache 目录指令
- python - 在 numpy 数组中从末端切割可变距离的更多 Pythonic 方法
- java - Java:无法从套接字读取,线程卡在 readLine()
- java - ListenableFutureCallback - 永远不会调用 onFailure
- r - 计算测量值的汇总统计数据并将它们旋转到 R 中的列
- python-3.x - 熊猫如何检查列中的值是顺序的
- android - Android Auto 自定义应用 - 官方
- bash - ag 和 rg 没有列出以下划线开头的文件,find 没有