多项目设置中的maven阴影过滤过多

时间:2017-05-09 15:12:49

标签: java maven maven-shade-plugin

如何在多模块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。

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

第一次尝试 - 着色父pom

当我尝试将maven-shadeplugin应用于概率为https://github.com/DataSystemsLab/GeoSpark/blob/master/pom.xmlUsing Maven shade plugin in a multi module project - NullPointerException的根pom时,会发生空指针异常

多项目设置

当关注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时启用了着色

1 个答案:

答案 0 :(得分:0)

实际上,禁用放大是解决方案。否则可能明确地包括所需的工件也会起作用。