我有maven项目Main和项目Util。
Project Util依赖于依赖于gwt-dev的第三方库Lib。 gwt-dev会导致很多冲突,只需要GWT编译,所以它应该标记为“提供”,但它是“编译”。
所以我应该将Lib标记为Util中的“提供”。但是,如果我这样做,我的主项目将无法编译,因为它找不到Lib类。
目前我将Lib标记为“已提供”,然后在Main中将其包含为“已提供”。这很不方便,因为我必须记住Util依赖项。
我怎么能解决这个问题?
答案 0 :(得分:1)
在Lib
范围和exclude gwt-dev中使用compile
:
<project>
...
<dependencies>
<dependency>
<groupId>Lib group</groupId>
<artifactId>Lib artifact id</artifactId>
<version>Lib version</version>
<scope>compile</scope>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
只是一句话,排除通常是一种不好的做法。在这种情况下,您没有太多选择,因为Lib
的工件应该gwt-dev
为provided
(它是Lib
的错误...)。所以,不要忘记添加一个解释排除的体面评论。