0

我有 Maven 项目 Main 和项目 Util。

Project Util 依赖于一个依赖于 gwt-dev 的第三方库 Lib。gwt-dev 会引起很多冲突,只有GWT编译需要,所以应该标记为“provided”,但它是“compile”。

所以我应该在 Util 中将 Lib 标记为“提供”。但是如果我这样做,我的 Main 项目将无法编译,因为它找不到 Lib 类。

目前,我将 Lib 标记为“已提供”,然后将其作为“已提供”包含在 Main 中。这很不方便,因为我必须记住 Util 依赖项。

我该如何解决这个问题?

4

1 回答 1

1

Libcompile范围内使用并排除gwt-dev:

<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-devas provided(它是Lib' 的错误...)。所以,不要忘记添加一个体面的评论来解释排除。

于 2012-05-22T09:26:52.760 回答