问题标签 [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 投票
1 回答
1719 浏览

maven - 将 maven-shade-plugin 与 maven-assembly-plugin 一起使用

我有一个项目,它使用 maven-assembly-plugin 打包了几个(可执行 jar)程序集——基本上是相同的代码,但针对不同的客户端具有不同的数据集。

我需要在我的可执行 jar 中使用 spring,并且由于 spring 中的文件命名,我需要转而使用 maven-shade-plugin 来创建 jar。这工作正常,我可以创建可执行 jar,但我无法弄清楚如何将我的其他文件组装到这个新的阴影 jar 中,因为 shade 插件不提供组装插件中可用的许多功能。

阴影插件在程序集之前执行,所以我假设我可以在我的程序集中以某种方式使用阴影工件,但到目前为止我的所有尝试都失败了。是否可以创建一个程序集,该程序集采用现有的阴影 jar 并简单地将二进制文件和其他一些文件注入其中?

0 投票
1 回答
130 浏览

maven - Maven Shade 插件过滤

我正在尝试在包含的 jar 中增强/过滤我的一些资源。我想要的是在阴影阶段用新的关键字替换包含的 jars 中的一些关键字。

有没有办法增强阴影资源?

编辑:

我的资源有这样的字符串:#keyword1# #keyword2#,我想用它们对应的替换它们。

0 投票
1 回答
1504 浏览

java - 用于 Java 7 UberJar 的 Maven 阴影插件

我的问题很简单:是否有与 Java 版本 7 兼容的 Maven-shade-plugin 版本?具体来说,当我尝试使用此插件时,我收到以下错误(使用 Netbeans IDE):

当我尝试编译时,我收到此警告:

所以看来我只需要一个与 Java 7 兼容的插件。

0 投票
1 回答
4826 浏览

maven - 过滤资源 maven-shade-plugin

我正在尝试过滤我的 jar 中包含的资源。我正在使用 shade-maven-plugin,这个插件将我所有依赖项的所有资源添加到我生成的 jar 中,我只想包含我的项目资源。

这是我的 pom 定义:

我尝试添加下一个过滤器以删除所有资源,然后添加另一个过滤器,仅添加我的 artifactID 资源,但它不起作用。

想法?

谢谢。

0 投票
0 回答
1623 浏览

maven - Maven修改依赖jar清单文件

很抱歉,我无法提供确切的代码,因为我现在手头没有。但是,我在尝试将项目打包到 jar 时遇到了问题。我在 pom.xml 中使用 maven 程序集插件将所有依赖项和项目 jar 组合到一个地方。但是现在我需要所有这些依赖 jar 来拥有一个自定义清单文件。是否有可能以某种方式向 Maven 本身注入一些属性?现在我想出的唯一解决方案是使用 Maven 的 shade 插件并创建一个 uber-jar,但问题是某些依赖项具有自定义清单(如 Spring 框架的清单),这些清单会丢失并且只为 uber 生成一个清单-罐。是否有可能以某种方式告诉 maven 解压缩依赖项,编辑 manifestEntries 并再次打包它们并与项目 jar 一起组装在一个 zip 中?

长话短说:基本上我想知道的是,是否有可能以某种方式同时修改一个依赖项 jar 或所有依赖项 jar 中的文件?假设我的项目依赖于 spring-beans。现在我想修改 spring-beans.jar 中的一个特定文件,特别是 manifest.md,然后我将它们组装到一个 zip 中,该 zip 应该包含 project.jar 和 spring-beans.jar(带有修改后的 manifest.md)。我认为使用 maven antrunner 插件可以实现类似的功能?

例子:

我想修改spring-core.jar、spring-context.jar和spring-beans.jar中的manifest.md。我知道我可以使用 shade 插件来制作一个 uber jar,它有一个 manifest.md,我可以在 shade 的配置中编辑它,但是如果可以单独修改特定的依赖 jar,我认为它会更简单,我可以在几个小程序中使用这些库。

0 投票
1 回答
6330 浏览

java - 如何从阴影 maven jar 中排除测试依赖项?

我正在使用 maven-shade-plugin,我不仅想排除我的测试代码,还想排除我在阴影 jar 中的测试依赖项。我意识到我可以专门排除某些工件(如junit),但这是一项很好的工作并且很可能容易出现一些错误。

我设置minimizeJar为 true,但我仍然看到我的 Junit 和 Mockito 依赖项出现。有没有办法通过配置排除所有测试范围的依赖项?

0 投票
1 回答
3621 浏览

maven - Maven Shade 插件不包括依赖资源

我正在使用 Maven Shade 插件在包阶段包含所有依赖项。这适用于类,但不包括依赖资源。

这是依赖jar的布局:

这是阴影插件配置:

0 投票
2 回答
1895 浏览

maven - 从部署到 Nexus 中排除 jar-with-dependencies

我正在使用maven-shade-plugin创建一个包含所有依赖项的附加 jar。阴影阶段与包阶段相关联,因此每次执行mvn package.

但是,我不希望这个 jar-with-dependencies 在mvn deploy. 我怎样才能避免这种情况?

0 投票
1 回答
1538 浏览

maven - maven-release-plugin 不包括阴影工件

我正在尝试发布一个带有阴影工件的多模块项目。当我运行 release:prepare 然后 release:perform 上传到 Nexus 存储库的工件只包括原始 jar 而不是阴影的。

Maven“发布”是否有可能在“包”生命周期之前运行?

我正在运行的命令是:

我的父母 pom.xml 是:

分发项目的 pom.xml 看起来像

http://maven.apache.org/xsd/maven-4.0.0.xsd">my-project-parent org.my.project 1.2.0-SNAPSHOT 4.0.0

我计算机上的文件夹有阴影工件,但 Nexus 存储库中的工件仅包含原始的空 Jar。

有没有办法强制释放抓住阴影罐?

谢谢, 埃亚尔

0 投票
1 回答
7532 浏览

java - IntelliJ mvn 包的行为与命令行不同

在我的项目中,当我转到 cmd 行并键入:

mvn包

它在我的 /target 目录中创建了一个胖 .jar 文件。

我正在使用 Maven 阴影插件。

我希望能够在 IntelliJ 中执行此操作,因此在我的 maven 运行配置中,我将工作目录设置为根 pom.xml 文件夹,并添加了命令行“mvn package”。

它不会产生相同的输出,它只有:

我究竟做错了什么?