我有一个方面,我想在我的测试类中使用。我不想将它添加到主jar中,因为它会引入像junit和mockito这样的测试库。虽然有一个配置设置来添加一个aspectLibrary,但它总是添加主jar,没有办法指定测试jar。
我的aspectj插件看起来像这样:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.7</version>
<configuration>
<aspectLibraries>
<aspectLibrary>
<groupId>aspect.test</groupId>
<artifactId>general</artifactId>
<type>jar</type>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
我实际上想要指定test-jar,但这似乎并不可行。没有它默认为jar(显然)。
我也可能需要为编译和测试编译目标配置aspectj-maven-plugin ...但首先我需要知道如何指定test-jar。欢迎任何建议。
答案 0 :(得分:0)
请阅读Maven JAR插件文档,第How to create a jar containing test classes章。列出了两个选项:
我们会选择首选方式,因为它可以解决您的问题。所以基本上你做了以下几点:
src/main/java
, 而不是 src/test/java
下。 AspectJ Maven插件应该对该模块执行<goal>compile</goal>
。<acpectLibrary>
,并且还要小心在该模块的插件执行中仅使用<goal>test-compile</goal>
,以避免将这些方面编入生产代码或获取错误消息,因为依赖项具有测试范围,并且无法进行正常编译。因为我不想在这里完全引用3个POM和几个类,所以我为你创建了一个GitHub sample project。只需克隆它,检查所有文件及其各自的位置,并 - 快乐。 ; - )