当前位置: 首页 > 知识库问答 >
问题:

Maven阴影在多项目设置过滤太多

姜嘉荣
2023-03-14

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

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

现在,对于我项目中的一些任务,我需要使用D(http://www.geotools.org)这取决于com的另一个版本。生动的解决方案。jts。

如何在单个项目中使用这两个JAR?遗憾的是,简单的依赖项替换在这里不起作用。着色应该是解决方案。

当我尝试将maven-shauckugin应用于https://github.com/DataSystemsLab/GeoSpark/blob/master/pom.xml的根pom时,如在多模块项目中使用Maven阴影插件-NullPointerException发生空指针异常

当遵循如何在多模块项目中配置Maven阴影插件时?将其设置为maven构建至少编译的多模块构建。但是,生成的jar缺少geospark模块的实际代码。我看不出这将在哪里被过滤。我的更改可用https://github.com/geoHeil/GeoSpark/commit/23d212aeeeacad8b7199da69366d583fc48edcf0

主要变化是:

  • 引入第三个模块FinalModule
  • 着色仅在那里启用,将com.vividsolutions.jts替换为com.vividsolutions.jtsgeospark

共有1个答案

齐磊
2023-03-14

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

 类似资料:
  • 我一直在尝试使用Maven Shade插件获取jar,但仍然没有成功。 这是我的项目结构: 模块1(pom.xml): 模块2(pom.xml): 主模块(pom.xml): 根据这段代码,我得到了2个jar文件(Module1-version.jar和Module2-version.jar)。但这不是我想要的。我希望得到1个jar文件(MainModule-version.jar),它将包含另一

  • 我在我的项目中使用了maven shade插件将所有依赖项jar类重新定位到一个包下,例如org.shade.* 当我试图在其他应用程序中使用带阴影的jar作为maven依赖项时,它会拉出依赖项jar的。 我的期望是,当Uber/shaded jar包含为maven依赖项时,它不应该拉出任何其他依赖类jar,因为这些类已经在shaded jar中重新打包了。

  • 问题内容: 我想使用maven shade创建一个有阴影的jar,但我也想仅在有阴影的jar的情况下才包含一个特殊的依赖项(而不是在我项目的普通编译依赖项中)。我该怎么办? 根据我的理解,包含/排除项只是白名单/黑名单,因此我无法明确强制要包含的内容未包含在实际依赖项列表中。 对于更多上下文,我有一个JAR依赖项,其中包含只希望包含在我的一个阴影工件中的资源,但是如果在类路径中使用该jar会导致错

  • 根据我的理解,包含/排除只是白名单/黑名单,所以我不能显式地强制包含一些没有包含在实际依赖列表中的内容。 为了获得更多的上下文,我有一个JAR依赖项,它包含一个资源,我只希望它包含在我的shade工件中,但是在类路径上使用该JAR会导致错误。 明确地说,我希望在一个调用中生成一个带有附加依赖项的阴影jar,以及一个没有附加依赖项的普通jar。

  • 阴影 Unity 的灯光可以将 阴影 从一个游戏对象投射到自身的其他部分或是附近的其他游戏对象上。阴影以『扁平』的方式体现游戏对象的尺寸和位置,因此可以为场景添加一定程度的深度和真实感。 场景视图中的游戏对象正在投射阴影 阴影如何工作? 考虑一种最简单的情况,在场景中只有单个光源。光线从光源出发并沿着直线传播,最终可能会碰撞到场景中的游戏对象。一旦光线碰撞到某个游戏对象,光线将无法继续传播和照亮前

  • 我很难使用Maven Shade插件,因为我希望将我的带阴影的jar安装到与父pom相同的文件夹中(而不是本地目录)。 布局:maven_project 我必须导出项目,为了让其他人更容易运行可执行jar,我想将带阴影的jar重新定位到文件夹。