在我的maven项目中,我使用的是类型为test-jar的依赖项,m2e不喜欢并给出以下警告。
“使用类型test-jar对项目foo的依赖性并不完全 支持的。可能会出现类路径和/或部署问题。尝试 Maven->禁用工作区“
为什么会出现此问题,为什么禁用工作区解析会修复它?
答案 0 :(得分:3)
test-jar的问题在于Eclipse,请参阅Bug 365419 - Classpath for Integration Test
答案 1 :(得分:3)
我已经尝试使用下面的hack消除这个警告,但它有副作用使得无法运行eclipse中的测试,因为在运行代码时,eclipse中的测试的类路径没有正确设置。我发帖在这里,希望有人可以改善这种黑客并让它发挥作用。
在eclipse中创建一个pom文件中的配置文件,但在eclipse外运行maven时会自动打开。
<profiles>
<profile>
<id>test-jars</id>
<activation>
<property>
<name>!m2e.version</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>foo</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>bar</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
</profiles>
在eclipse中定义了m2e.version属性,因此m2e忽略了test-jar依赖项,并且没有生成警告。但是,当在命令行上运行maven时,配置文件会激活,因为没有m2e.version属性,因此警告消失。