18

在我的 maven 项目中,我使用了 m2e 不喜欢的 test-jar 类型的依赖项,并给出了以下警告。

“不完全支持对具有类型 test-jar 的项目 foo 的依赖。可能会出现类路径和/或部署问题。尝试 Maven->禁用工作区”

为什么会出现这个问题,为什么禁用工作区分辨率会解决这个问题?

4

2 回答 2

3

test-jar 的问题在 Eclipse 中,请参阅Bug 365419 - Classpath for Integration Test

于 2013-01-31T09:14:47.103 回答
3

我已经尝试使用下面的 hack 使这个警告消失,但是它有一个副作用,即无法从 eclipse 运行测试,因为当运行代码没有正确设置时,eclipse 中的测试的类路径。我在这里发帖是希望有人可以改进这个黑客并使其发挥作用。

在 pom 文件中创建配置文件在 eclipse 中是关闭的,但在 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 属性,因此警告消失了。

于 2013-07-19T05:21:03.580 回答