14

我已经导入了 maven 多模块项目并且一些传递依赖没有解决。同样的项目构建在 Jenkins/Eclipse/Console 中。

我试过两个分别导入每个项目,也只导入父 pom - 两者都不起作用。

我有以下结构:Project A并且Project B有共同的父级,并且两者都被定义为这个父级中的模块。Project A包含作为依赖jackon-jar,Project B没有它。Project A在默认范围内包含 jackson-jar - jar 在编译和测试运行期间可见。现在Project B导入Project A并使用jackson-jar - 这是问题所在 - jackson-jar in not visible in Project B:( 当我明确指定它时Project B一切正常,但它应该作为传递依赖自动来自Project A......

这是常见的问题吗?有解决方法吗?

以下是 POM 示例:

家长:

<project ....>
    <modelVersion>4.0.0</modelVersion>

    <version>1.0-SNAPSHOT</version>
    <groupId>miklas.test</groupId>
    <artifactId>my-parent</artifactId>
    <packaging>pom</packaging>

    <modules>
        <module>my-project-a</module>
        <module>my-project-b</module>
        <module>my-project-c</module>
    </modules>
</project>

项目-A

<project ....>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>miklas.test</groupId>
        <artifactId>my-parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>my-project-a</artifactId>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jackson-provider</artifactId>
            <version>2.3.4.Final</version>
        </dependency>
    </dependencies>

</project>

项目-B

<project >
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>miklas.test</groupId>
        <artifactId>my-parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>my-project-b</artifactId>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>miklas.test</groupId>
            <artifactId>my-project-a</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>

</project>

下面也是我真实项目的屏幕截图 - 这将Project B来自上面的简化示例。我们可以看到左侧resteasy-jackoson-provider有 4 个依赖 jar,而右侧只有两个。两个视图都显示同一个项目:

在此处输入图像描述

现在来自相同的屏幕截图Project A

在此处输入图像描述

4

2 回答 2

8

这似乎是 IntelliJ 12 中的一个错误。请参阅http://youtrack.jetbrains.com/issue/IDEA-98425,如果它对您很重要,请为该问题投票。

于 2013-01-07T22:29:13.627 回答
1

http://youtrack.jetbrains.com/issue/IDEA-98425中提到的对我和其他人有用的解决方法是转到“设置 - Maven - 多项目构建失败策略”。将其设置为“最终失败”。

于 2013-01-14T11:04:27.303 回答