如何为Maven定义第三个Java源文件夹,将其编译成第三个JAR?

时间:2014-03-06 15:00:07

标签: maven-3 maven-compiler-plugin

默认情况下,Maven标准目录布局有两个Java源文件夹:

src/main/java
src/test/java

出于我的目的,我需要第三个src/junit/java,它应该用分类器junit打包到JAR中。

如果可能,新的源文件夹应该有自己的类路径(编译+范围为junit的所有内容)。

我的猜测是,为此,我必须至少修改资源并编译插件。

或者有更简单的方法吗?

我有一个workaround as explained here,但为此,我必须在compile类路径上放置像Mockito和JUnit这样的东西,这违反了我的纯洁感。

对于所有怀疑我的方法的智慧的人:我有一些支持代码,当你使用来自src/main/java的代码时,它有助于编写单元测试。由于我在项目本身的测试中使用相同的支持代码,因此需要在 src/main/java src/test/java之前编译

具体来说,我的支持代码需要从src/main/java导入代码,测试需要能够导入支持代码。

1 个答案:

答案 0 :(得分:3)

我见过几个Maven设置,它们将测试代码捆绑在一个自己的Maven模块中。然后,您可以创建一个简单的主模块< - support-module< - 测试模块依赖关系链。但是如果你在没有测试模块的情况下自己构建它,那么主模块就可以正常编译。你可以用反应堆pom将它们聚集在一起,然后通过这个pom来构建项目。

编辑:

如果您对此代码覆盖率设置有疑问,可以使用Jacoco Maven插件将测试模块生成的测试覆盖率聚合到主模块。有关详细信息,请参阅此处:http://www.petrikainulainen.net/programming/maven/creating-code-coverage-reports-for-unit-and-integration-tests-with-the-jacoco-maven-plugin/