我有一个Maven项目,作为其他项目中使用的库。设置非常标准:
假设我有一个名为
我应该把这个支持代码放在哪里呢?
同时,
在Maven中有哪些选项可以将它保留在同一项目中,但仍然与
src/main
包含库代码,src/test
包含 src/main
的测试用例。假设我有一个名为
foo
的项目依赖于这个库。 foo
也有测试用例。为了帮助在使用我的库的代码时编写 foo
的测试,我想给 foo
提供一个支持框架来编写测试(如设置模拟环境)。我应该把这个支持代码放在哪里呢?
- 不能放在
src/main
中,因为它不是用于生产的。 - 不能放在
src/test
中,因为将foo
的测试与库的测试建立依赖会使类路径中添加太多垃圾文件(如logback-test.xml
配置文件,从未执行过的测试等)。
src/main
中的代码紧密耦合,因此我想将其保留在同一项目中(还允许测试支持代码访问包私有字段和方法)。同时,
src/test
中的代码应该能够访问它,以便我可以使用它来编写自己的单元测试。在Maven中有哪些选项可以将它保留在同一项目中,但仍然与
src/main
和 src/test
分离得很清楚?我是否可以创建第三个输出JAR,例如 src/test-support
?或者,我应该把代码放入 src/test
中,然后使用JAR插件中的过滤器仅包含支持代码?
src/test
中的所有代码),以及另一个带有过滤文件集的jar? - Aaron Digullatest-jar
忽略了classifier
中的值并始终使用tests
。使用目标jar
时,它按预期工作,但是它只查找src/main
中的类,因此 JAR 始终为空。 - Aaron Digulla