Maven Eclipse多模块阴影依赖关系

问题描述 投票:3回答:1

在一个多模块的Maven项目中,其中一个模块是一个阴影模块(例如,没有源码,但会生成一个 jar 在...期间 package 阶段)。) 其他模块将此模块作为依赖关系引用(都在同一个父模块下)。 有没有办法让Eclipse将阴影模块识别为依赖关系?Eclipse 只覆盖了最多 compile.

目前它在命令行上工作(因为 package 运行),但在Eclipse中却显示错误。

我一直没有找到解决这个问题的方法。

详细说明一下。

- Parent project
   - Module A
   - Module B

模块A是一个阴影模块,这意味着它有一些类似于:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <id>shade</id>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <relocations>
                            <relocation>
                                <pattern>com.third.party</pattern>
                                <shadedPattern>my.shaded.third.party</shadedPattern>
                            </relocation>
                        </relocations>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

模块B将模块A作为依赖关系(在依赖关系-依赖关系下)。模块B试图通过导入重新定位的路径来使用模块A中的类...例如。

import my.shaded.third.party.Foo;

这样做是行不通的,因为它找不到Foo. 这是有道理的,因为Eclipse构建中只运行编译阶段。

eclipse maven module dependencies m2e
1个回答
0
投票

右键点击依赖项目> Maven> 禁用工作空间解析

这将告诉Eclipse使用Maven的编译,这意味着你可以使用 my.shaded.* 的导入。

然而,这样做的后果是,你的项目在使用maven构建之前不会被更新。它 一个让Eclipse识别阴影依赖的解决方案,不过。

© www.soinside.com 2019 - 2024. All rights reserved.