问题标签 [maven-shade-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9345 浏览

java - 无法使用 Maven 遮蔽罐子(INVOKESPECIAL/STATIC)

完整的错误信息:

无法在项目上执行目标 org.apache.maven.plugins:maven-shade-plugin:2.3:shade (default) --: 创建阴影 jar 时出错:接口上的 INVOKESPECIAL/STATIC 需要 ASM 5 -> [帮助 1]

我试图遮蔽的 jarfile 位于我自己的远程存储库中,使用 sonatype nexus。这是我的pom配置:

谷歌搜索错误导致的结果很少,我收集的主要信息是Java 8 的静态接口方法可能导致这种情况,但是我找不到更多信息。我试图遮蔽的 jarfile确实具有这些静态方法之一,但我仍然可以肯定我必须能够使用它们并遮蔽 jar?我不确定要求“ASM 5”(组装?)的错误意味着什么,所以任何方向都会受到赞赏。

我的有效 pom ( mvn help:effective-pom):

完整的 Maven 堆栈跟踪:

0 投票
2 回答
1074 浏览

java - Maven 阴影复制 WEB-INF

使用maven-shade-plugin我正在尝试创建一个项目文件结构,如下所示:

在此处输入图像描述

问题是下面的 pom 配置没有创建 WEB-INF 目录。

基本上我需要将我的 web.xml 文件、类和 lib 文件复制到项目根目录中名为 WEB-INF 的目录中。

更新:对不起,我从我的 pom 复制了错误的插件到原始问题中!

更新:如果我从 pom 声明中添加包装:<packaging>war</packaging>WEB-INF 文件结构按照 OQ 完成。但是,有了这个声明,com目录现在不包含我的包,所以找不到主类。

它看起来如何<packaging>war</packaging>

在此处输入图像描述

它应该看起来如何:

在此处输入图像描述

0 投票
1 回答
1411 浏览

scala - 使用来自 Scala 和 sbt 的 Maven 阴影插件

由于某些依赖项中的一些怪癖,我遇到了麻烦sbt-assembly,并且被告知人们使用 Java 并且使用 Maven 的 shade 插件取得了良好的效果。

如何为 Scala / sbt 使用 Maven 的 shade 插件?

0 投票
1 回答
496 浏览

maven - 在预先存在的 uber jar 上运行 mvn shade

我有一个已经生成的 uber jar(不是通过 Maven;我只有 jar)。我需要将它与另一个存在依赖冲突的 jar 一起使用。我想遮蔽第一个 uber jar 中的所有库,除了一些需要公开的类。

获取现有 jar 并使用 Maven shade 插件重命名其类的大部分(白名单除外),生成一个新的 uber jar 的设置是什么?

0 投票
0 回答
1479 浏览

java - maven-shade-plugin 不包含 uber jar 中其他模块的依赖项

我的问题摘要:在多模块项目中,其中一个模块依赖于另一个模块。使用 构建此模块的 uber jar 时maven-shade-plugin,正确包含其所有依赖项,但不包含其他模块的依赖项。


我有一个多模块项目,具有以下架构:

module_2依赖于module_1,在其 pom.xml 中声明:

我想构建一个 uber jar module_2,并使用maven-shade-plugin, 声明如下:

这会产生一个 uber jar:

  • 包括所有依赖module_2
  • 包括罐子module_1
  • 不包括依赖项module_1

有没有办法指定包括所有依赖项module_1

我发现的一个解决方案是使用maven-shade-plugin来构建一个超级罐子module_1。由于这个 jar 包含在 的 uber jar 中module_2,因此它可以工作。但我想避免这种解决方案,以便能够发布一个简单的 jar 文件module_1,不包括它的依赖项。

而且我想使用maven-shade-plugin而不是maven-assembly-plugin(为了更好地控制最终jar中包含的文件)


遵循@user2321368 的更多详细信息请求

maven 版本:Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)

module_1 的 pom.xml,我在其中包含了它的依赖项:(范围和版本在依赖项管理部分的父 pom 中声明)

0 投票
2 回答
5258 浏览

java - Netbeans:项目主神器通过maven-shade-plugin处理

我正在构建我的项目,maven-shade-pluginNetbeans 8.0 抱怨以下警告:

项目主神器通过maven-shade-plugin处理

当最终的工件 jar 包含不源自当前项目的类时,NetBeans 内部编译器无法使用项目的源代码进行编译。然后,在重新编译项目时,项目源代码中所做的更改仅出现在依赖项目中。也适用于无法在依赖项目中找到用途的重构等功能。

我怎样才能解决这个问题?能破什么?

0 投票
3 回答
3186 浏览

maven - 如何在 Maven 中定义依赖范围以在编译、运行、测试中包含库,而不是在组装/打包中?

我正在构建一个既可以在本地调试又可以部署到集群的 Apache Spark 应用程序。为此,我必须定义它对 spark-core(Java/scala 库)的依赖关系,以满足以下要求。

包含在编译中(否则编译失败)包含在运行和测试中(用于本地调试和单元测试)排除在组装中(用于部署到具有提供的 spark-core 的集群,这将 jar 大小减少了 70M,我正在使用maven-shade 插件来生成包罗万象的 jar,因为存在一些无法使用 maven-assembly 解决的 jar 地狱问题)

不幸的是,maven 本身并不支持自定义范围。有没有办法使用一些插件来启用它?

0 投票
2 回答
2193 浏览

hadoop - maven-shade-plugin vs maven-assembly-plugin

我使用 spring-data-hadoop 编写了一个 hadoop MR 作业,并使用 maven-shade-plugin 来打包所有必要的 jar。但是当我从命令行运行工作时:hadoop jar,它给了我 Spring-bean 的 ClassNotFound 异常。导致加载 spring 应用程序上下文的问题。在我使用 maven-assembly-plugin 并将所有需要的 jar 打包到 lib 文件夹中之后。这次奏效了。

我不明白为什么 maven-shade-plugin 会失败。有人可以帮助我理解我的观察。

0 投票
2 回答
3787 浏览

maven - 使用 maven-shade-plugin,但依赖类不在最终 jar 中

在我的项目的 pom.xml 中,我有以下依赖项:

我想让我的项目最终构建的 jar 包含上述com.my.library:MyLib依赖项的类,所以我以下列方式使用了maven-shade-plugin :

然后,我运行mvn clean install,我的项目构建成功。

但是当我检查目录下 MyProject.jar 的内容时,target/不包含com.my.library:MyLib依赖项中的类,为什么?我在哪里错了 maven-shade-plugin ?

0 投票
1 回答
2152 浏览

maven - 在使用 minimizeJar 函数时,Maven shade 插件如何决定将哪些依赖项放入最终的 jar 中?

我有一个带有一个 java 文件的 Maven 项目,它使用 Maven shade 插件来创建一个 uber jar。我的目标是创建一个尽可能小的可执行 jar。我决定在插件中使用minimizeJar参数来使我的 jar 更小。参数是否仅放入运行所需的依赖项或要编译的依赖项,或两者兼而有之?