maven-shade-plugin 相关问题

这个插件提供了将工件打包在超级jar中的功能,包括它的依赖关系和阴影 - 即重命名 - 一些依赖项的包。

maven-shade-plugin 不会替换原来的 jar

奇怪的是,我的 maven-shade-plugin 没有用阴影 jar 替换原始 jar。有谁知道可能是什么原因? 这是我在 pom.xml 中的插件 奇怪的是,我的 maven-shade-plugin 没有用阴影 jar 替换原始 jar。有谁知道可能是什么原因吗? 这是我在 pom.xml 中的插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>${plugin.shade.version}</version> <configuration> <artifactSet> <excludes> <!-- Leave slf4j unshaded so downstream users can configure logging. --> <exclude>org.slf4j:slf4j-api</exclude> <exclude>org.slf4j:slf4j-log4j12</exclude> <!-- Leave commons-logging unshaded so downstream users can configure logging. --> <exclude>commons-logging:commons-logging</exclude> <!-- Leave commons-exec unshaded so downstream users can use ProcessLauncher. --> <exclude>org.apache.commons:commons-exec</exclude> <!-- Leave log4j unshaded so downstream users can configure logging. --> <exclude>log4j:log4j</exclude> </excludes> </artifactSet> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>reference.conf</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"/> <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> <resource>NOTICE.txt</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> <resource>META-INF/LICENSE.txt</resource> <file>${basedir}/../../LICENSE.txt</file> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> <resource>META-INF/NOTICE.txt</resource> <file>${basedir}/../../NOTICE.txt</file> </transformer> </transformers> <relocations> <relocation> <pattern>org</pattern> <shadedPattern>${shaded.dependency.prefix}.org</shadedPattern> <excludes> <exclude>org/apache/zeppelin/*</exclude> <exclude>org/apache/zeppelin/**/*</exclude> <exclude>org/apache/thrift/*</exclude> <exclude>org/apache/thrift/**/*</exclude> <exclude>org/slf4j/*</exclude> <exclude>org/slf4j/**/*</exclude> <exclude>org/apache/commons/logging/*</exclude> <exclude>org/apache/commons/logging/**/*</exclude> <exclude>org/apache/commons/exec/*</exclude> <exclude>org/apache/commons/exec/**/*</exclude> <exclude>org/apache/log4j/*</exclude> <exclude>org/apache/log4j/**/*</exclude> <exclude>org/sonatype/*</exclude> <exclude>org/sonatype/**/*</exclude> <exclude>**/pom.xml</exclude> <!-- Not the org/ packages that are a part of the jdk --> <exclude>org/ietf/jgss/*</exclude> <exclude>org/omg/**/*</exclude> <exclude>org/w3c/dom/*</exclude> <exclude>org/w3c/dom/**/*</exclude> <exclude>org/xml/sax/*</exclude> <exclude>org/xml/sax/**/*</exclude> </excludes> </relocation> <relocation> <pattern>com.google</pattern> <shadedPattern>${shaded.dependency.prefix}.com.google</shadedPattern> </relocation> <relocation> <pattern>io</pattern> <shadedPattern>${shaded.dependency.prefix}.io</shadedPattern> </relocation> <relocation> <pattern>com.esotericsoftware</pattern> <shadedPattern>${shaded.dependency.prefix}.com.esotericsoftware</shadedPattern> </relocation> </relocations> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> Shaded 插件默认将原始文件保存为 -original.jar,如果您想用新生成的(阴影)替换原始文件,请将此行放在您的配置插件部分: <configuration> ... <outputFile>${output.directory}\${project.artifactId}-${project.version}.jar</outputFile> ... </configuration> 用你的阴影插件outputDirectory替换output.directory。 查看此帖子了解更多详细信息:post 看起来配置标签应该位于层次结构中的执行标签内,如下所示。请重新组织执行和执行标签,并在其下包含您的配置,如下所示。 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>${maven.shade.plugin}</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <relocations> <relocation> <pattern>org.apache*</pattern> <shadedPattern>shaded.org.apache*</shadedPattern> </relocation> <relocation> <pattern>com.cookie*</pattern> <shadedPattern>shaded.com.cookie*</shadedPattern> </relocation> </relocations> </configuration> </execution> </executions> </plugin> </plugins> 更多信息请参考maven文档http://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html

回答 2 投票 0

JavaFX 无法使用 API

我使用 Maven Shade 使用 JakartaEE10 创建了一个 JavaFX17 应用程序。它在 NetBeans>run 上正确运行,但是当双击 Shadowd.jar 时它会运行,但我无法登录。我使用随机数登录。它

回答 1 投票 0

Maven-shade 3.5.2 + Flyway 10.12.0(通过 API 用于 HSQLDB 2.7.2)不起作用(JavaFX 应用程序。)

Flyway 10.12.0(通过 API 用于 HSQLDB 2.7.2)不适用于 maven-shade-plugin 3.5.2 v9.22.3 OK - 1 个依赖项:flyway-core v10.12.0 NOK - 2 个依赖项:flyway-core+flyway-database-hsqldb 飞行路线

回答 1 投票 0

Wildfly 无法在阴影 JAR WFNAM00026 中检索 TopicConnectionFactory:找不到 URI 的提供程序:null

我有一个连接到 Wildfly 27 实例的客户端应用程序。 要求之一是最终客户端是一个易于分发的可执行文件。 由 Windows 系统上的最终用户使用...

回答 1 投票 0


确定 Maven 部署文件的存储库 URL

我正在使用 Maven 来构建一个特定的项目,并且在 POM 中我正在使用 Maven Shade 插件构建主要工件的 3 个不同变体(我正在使用各种

回答 4 投票 0

添加扩展代理的 Maven 示例

我正在使用 Maven 编写自己的扩展,我想嵌入该扩展并创建一个 jar。我在 https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/

回答 1 投票 0

log4j2 错误 StatusLogger 无法识别的转换说明符

我的项目中有log4j2,当我在intellij Idea中运行main方法时,打印日志是正确的。 当我使用 maven-shade-plugin 包项目来生成 jar 文件,并将 jar 作为独立应用程序运行时,它...

回答 10 投票 0

Word VBA 将高亮转为阴影 (1) 如何将代码限制在选定范围内? (2) 有没有比Char by Character+循环每种颜色更高效的Code?

标题说明了一切:可以将高亮转换为底纹(从“通过 VBA 将文本从高亮转换为底纹”中学习) https://www.datanumen.com/blogs/convert-texts-shaded-highlighted-vice-v...

回答 1 投票 0

带有额外 main 的 Java AWS Lambda 项目

我们有一个适用于 AWS Lambda 的 Java 项目,可以根据请求执行不同的评估。 到目前为止,效果很好,但对于某些评估,我们希望可以选择在本地手动启动它们

回答 1 投票 0

Maven-shade-plugin 检测到某些类文件存在于两个或多个 JAR 中

我正在尝试使用 maven-shade-plugin,但收到警告: javafx-controls-18.0.1-win.jar,javafx-graphics-18.0.1-win.jar, javafx-media-18.0.1-win.jar、javafx-web-18.0.1-win.jar 定义 1 覆盖...

回答 1 投票 0

ArtifactSet 和 Filters 的区别

我试图排除一些来自 fat jar 中的依赖项的类,并包括 slf4j 等内容(导致依赖项冲突)。 我查看了 maven-shade-plugin (https://maven.ap...

回答 1 投票 0

为什么 Maven 阴影会跳过 MCCoroutine 库中的文件

运行我的 Spigot 插件(使用 Kotlin 和 Maven 构建)时,我收到有关缺少类的错误。 我的 .jar 中缺少文件“com.github.shynixn.mccoroutine.bukkit.impl.MCCoroutineImpl”...

回答 1 投票 0

如何在 JAR 中捆绑 JRE,以便它可以在没有 Java 的系统上运行?

我想将 JRE 捆绑到我的可执行 JAR 中,以便 exe 可以在任何系统上运行。 我尝试过 Launch4j,但该方法要求我同时提供 JRE 和 exe。按照我的要求...

回答 3 投票 0

是否有用于创建控制台应用程序的 Maven 架构?

是否可以通过 mvn archetype:generate 生成一个具有 main 功能的 Maven 存根项目,并且构建过程的一部分包括制作 App.cmd/App.sh 以从 shell 运行应用程序? 它...

回答 2 投票 0

运行可执行 jar 时的 Spring 循环占位符引用

我在尝试运行可执行 jar 文件时遇到“循环占位符引用”异常。这是详细的例外情况。 org.springframework.beans.factory.BeanDefinitionStoreException:Inv...

回答 6 投票 0

maven-shade-plugin 重新定位多版本 jar 中 META-INF/版本下的类

我正在使用阴影来创建超级罐子。我重新定位了依赖类以避免冲突。但是,我找不到有关如何在 META-INF/versions 下重新定位类的在线文档。

回答 3 投票 0

如何使用 Maven Shade 插件仅包含范围为“provided”的依赖项中的特定类?

我正在使用 Maven Shade 插件将我的应用程序打包成 jar 文件。我的依赖之一是 Tomcat: org.apache.tomcat <

回答 5 投票 0

在另一个模块java中包含并重新定位maven依赖

我有一个多模块maven项目,我用maven的shade插件构建。我有一个名为“distribution”的模块,其中包括所有其他模块,然后进行构建。我的问题是我

回答 1 投票 0

使用 AWS Lambda 的 Mavn 阴影插件

我正在使用如下的 Maven Shade 插件为 aws lambda 创建一个 jar org.apache.maven.plugins 妈妈...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.