问题标签 [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.
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 堆栈跟踪:
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>
:
它应该看起来如何:
scala - 使用来自 Scala 和 sbt 的 Maven 阴影插件
由于某些依赖项中的一些怪癖,我遇到了麻烦sbt-assembly
,并且被告知人们使用 Java 并且使用 Maven 的 shade 插件取得了良好的效果。
如何为 Scala / sbt 使用 Maven 的 shade 插件?
maven - 在预先存在的 uber jar 上运行 mvn shade
我有一个已经生成的 uber jar(不是通过 Maven;我只有 jar)。我需要将它与另一个存在依赖冲突的 jar 一起使用。我想遮蔽第一个 uber jar 中的所有库,除了一些需要公开的类。
获取现有 jar 并使用 Maven shade 插件重命名其类的大部分(白名单除外),生成一个新的 uber jar 的设置是什么?
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 中声明)
java - Netbeans:项目主神器通过maven-shade-plugin处理
我正在构建我的项目,maven-shade-plugin
Netbeans 8.0 抱怨以下警告:
项目主神器通过maven-shade-plugin处理
当最终的工件 jar 包含不源自当前项目的类时,NetBeans 内部编译器无法使用项目的源代码进行编译。然后,在重新编译项目时,项目源代码中所做的更改仅出现在依赖项目中。也适用于无法在依赖项目中找到用途的重构等功能。
我怎样才能解决这个问题?能破什么?
maven - 如何在 Maven 中定义依赖范围以在编译、运行、测试中包含库,而不是在组装/打包中?
我正在构建一个既可以在本地调试又可以部署到集群的 Apache Spark 应用程序。为此,我必须定义它对 spark-core(Java/scala 库)的依赖关系,以满足以下要求。
包含在编译中(否则编译失败)包含在运行和测试中(用于本地调试和单元测试)排除在组装中(用于部署到具有提供的 spark-core 的集群,这将 jar 大小减少了 70M,我正在使用maven-shade 插件来生成包罗万象的 jar,因为存在一些无法使用 maven-assembly 解决的 jar 地狱问题)
不幸的是,maven 本身并不支持自定义范围。有没有办法使用一些插件来启用它?
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 会失败。有人可以帮助我理解我的观察。
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 ?
maven - 在使用 minimizeJar 函数时,Maven shade 插件如何决定将哪些依赖项放入最终的 jar 中?
我有一个带有一个 java 文件的 Maven 项目,它使用 Maven shade 插件来创建一个 uber jar。我的目标是创建一个尽可能小的可执行 jar。我决定在插件中使用minimizeJar参数来使我的 jar 更小。参数是否仅放入运行所需的依赖项或要编译的依赖项,或两者兼而有之?