【问题标题】:maven shade in multi project setup filtering too much多项目设置中的 Maven 阴影过滤太多
【发布时间】:2017-10-07 23:43:29
【问题描述】:

如何在多模块maven项目设置中正确设置maven-shade插件?

故事情节

A (https://github.com/DataSystemsLab/GeoSpark) 依赖于 B (https://github.com/jiayuasu/JTSplus) 是 C (com.vividsolutions.jts) 的一个分支

现在对于我项目中的一些任务,我需要使用 D (http://www.geotools.org),它依赖于 com.vividsolutions.jts 的另一个版本。

如何在一个项目中同时使用这两个 jar?不幸的是,简单的依赖替换在这里不起作用。阴影应该是解决方案。

第一次尝试 - 为父 pom 着色

当我尝试将 maven-shadeplugin 应用到 https://github.com/DataSystemsLab/GeoSpark/blob/master/pom.xml 的根 pom 时,如 Using Maven shade plugin in a multi module project - NullPointerException 所述,会发生空指针异常

多项目设置

当关注How to configure Maven shade plugin in a multi-module project? 为多模块构建设置它时,maven 构建至少会编译。但是,生成的 jar 缺少geospark 模块的实际代码。我看不到会在哪里过滤。 我的更改可用https://github.com/geoHeil/GeoSpark/commit/23d212aeeeacad8b7199da69366d583fc48edcf0

主要变化是:

  • 引入第三个模块FinalModule
  • 仅启用阴影,将com.vividsolutions.jts 替换为com.vividsolutions.jtsgeospark

【问题讨论】:

  • 我注意到禁用 jar 的 minifiaction 时:<!--<minimizeJar>true</minimizeJar>--> 未删除原始代码。包含没有帮助。

标签: java maven maven-shade-plugin


【解决方案1】:

确实,禁用放大是解决方案。否则可能显式包含所需的工件也可以。

【讨论】:

    猜你喜欢
    • 2014-01-28
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多