当测试的pom将测试列为依赖项时,有没有人知道如何解决最近M2eclipse插件无法在junit启动程序的类路径中包含依赖项目test-classes目录的问题?
回复步骤
在命令行上,所有工作都按预期进行。通过测试类路径找到TestUtils类。
失败找不到课程。
当我们检查测试的类路径时,看不到providerProj / test-classes文件夹。如果我们关闭providerProj并重新运行,它就可以工作,我们在类路径上看到provider-test.jar。
useProject
<dependency>
<groupId>workspacetest</groupId>
<artifactId>providerProj</artifactId>
<classifier>test</classifier>
</dependency>
我们可以手动编辑启动器并添加必要的文件夹,但这并不理想。我或许可以说服m2eclipse转储src并测试输出到目标/类中,这会掩盖问题并打开我纠缠的代码。我可以fork m2eclipse并更改句柄以假设测试分类器dep意味着包括工作区解析目标/测试类。
你知道问题的解决方案吗?
由于
彼得
答案 0 :(得分:1)
您需要使用<classifier>tests</classifier>
。
BTW,http://maven.apache.org/guides/mini/guide-attached-tests.html不鼓励使用测试分类器,<type>test-jar</type>
是首选。
答案 1 :(得分:1)
我不久前想做类似的事情。问题是Eclipse和Maven处理的构建方式不同,而且现在Eclipse并没有很好地处理Maven的分类工件概念。这是我在this Eclipse bug report中找到的注释的释义。
我能够找到一个解决方法,因此Eclipse和Maven都可以运行。我将此添加到需要来自分类罐的物品的POM中。 (注意,我是为测试资源做的,而不是测试源,所以如果我在下面没有配置,你可能需要调整...)
<profile>
<!-- Contents of this profile only needed to make this project work in Eclipse. -->
<id>m2e</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>include-test-source-eclipse</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>../myOtherProj/src/test/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
将build-helper插件放在配置文件中可确保它仅在Eclipse中运行,而不是作为普通Maven构建的一部分。它不漂亮,但它起作用,至少在Eclipse Juno和m2e 1.3.1.20130219-1424中。
我对配置的唯一问题是,有时Eclipse似乎没有找到我在提供者项目中所做的更改。修复是运行Maven - &gt;根据提供者项目和任何项目更新项目。我并没有经常更换资源,这对我来说是个大问题。