我们的项目中有两个模块A和B。 B依赖于A。模块A被构建为Uber Jar,而模块B最终被构建为war文件。由于模块A内置在uber jar中,因此在将其添加为模块B的依赖项时,我们排除了它的所有依赖项
<dependency>
<groupId>com.app</groupId>
<artifactId>A</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
此方法的唯一问题是IntelliJ在模块B中报告了一堆未声明的进口,尽管这些进口是通过uber jar从A获得的。
有没有办法使IntelliJ抑制这些警告或弄清楚A是一个Uber Jar,从而自动将其所有依赖项用于依赖项分析?
答案 0 :(得分:0)
我们仍未找到解决此问题的解决方案,但提出了解决我们的用例的解决方法。
我们创建了一个空模块C,而不是直接使用模块A(该模块内置到uber jar中),现在将其内置到uber jar中。现在,模块A将会构建到一个普通的jar中,而所有的依赖jar都单独存在
A
|- B (war)
|- C (uber jar)
通过此设置,我们仍然可以从模块C中获得所需的uber jar,所有基本依赖项都包含在一个公共模块(A)中,而war模块(B)能够导入其依赖的模块(A)没有任何问题。