java - 在子项目中使用重定位的依赖项

标签 java maven guava maven-shade-plugin relocation

嘿嘿,

我目前正在开发一个 bukkit 插件,我想使用 guava。 Bukkit 仍然使用 Guava 11.0,但我想使用 14.0。所以我试图在我的主模块中重新定位 Guava 。这非常有效。同一级别的另一个模块也使用 Guava ,它需要“相同”的 Guava 。所以在主项目中也使用了 Guava 。当然,导入发生了变化,主项目和其他模块不兼容。

项目结构:

parent :

  • 主模块:使用重定位版本的 guava(14.0)#
  • 另一个模块:使用 guava 14.0 但未重新定位 -> 与主模块不兼容

我已经尝试将 guava 重新定位到另一个模块中的相同路径,但没有任何反应。

也许任何人都知道如何解决这个问题。我只需要一种方法来在我的其他模块中使用我重新定位的 Guava :/

相关帖子:Maven shade relocations accross all modules?

最佳答案

您是否尝试过从 Bukkit 依赖项中排除 v14?请原谅下面的命名约定。我没有在 Maven 中查找依赖项。

<dependencies>
 <dependency>
  <groupId>Bukkit</groupId>
  <artifactId>Something</artifactId>
  <version>1.0</version>
  <exclusions>
    <exclusion>  <!-- declare the exclusion here -->
      <groupId>Guava</groupId>
      <artifactId>v14</artifactId>
    </exclusion>
  </exclusions> 
 </dependency>
</dependencies>

关于java - 在子项目中使用重定位的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17734350/

相关文章:

java - 使用 Guava 将数组转为 JSON

java - ant 构建文件中的 Guava

java - 在单链表中查找倒数第二个节点

java - 如何在不重新实例化 Bufferedreader 的情况下返回到文件的第一行?

Maven 验证 Sonar 在 svn : E175002 上失败

java - spring和maven类库及访问xml文件

java - 如何找到部署在 weblogic 服务器上的 war 文件的部署日期

java - Guava 缓存,如何在删除时阻止访问

java - 将命令行 unicode 参数传递给 Java 代码

java - 16+ 位音频格式如何工作?