问题标签 [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 - 我可以在 java 命令行上指定一个 JPA 兼容的 persistence.xml 文件吗?
我有一个包含所有 java 类的 UberJar,但想用外部 persistence.xml 文件执行这个 jar。根据规范,Hibernate(或任何其他 JPA 提供程序)在类路径上的任何 META-INF 文件夹中查找 persistence.xml 文件,但我无法使用 UberJar 完成这项工作。有任何想法吗?UberJar 的类加载器是否仅限于 jar 文件的内容?
jar - 包括一个非 Mavenized 依赖项,因此它可以与 maven-shade-plugin 一起使用
我想将不使用 Maven的GData Client作为依赖项包含到我的 Maven 项目中。它作为一堆 JAR 文件提供。
另外,我使用Maven Shade Plugin构建了一个没有任何外部依赖项的可执行 JAR(使用默认配置,没有重命名/包含/排除/转换依赖项)。
我怎样才能做到这一点?
(仅将 JAR 作为资源添加是行不通的,因为 Shade 插件必须提取它们)。
plugins - m2eclipse:作为 JAR 的 Maven 依赖项不是项目
我在 Eclipse 上有 m2eclipse 插件的 Maven 项目。这个项目有一些依赖。其中一些是 slf4j、apache-commons 等库。但也有我的库,我正在 Eclipse 中同时开发。不幸的是,m2eclipse 以这样一种方式创建构建路径,即我的库不是作为来自 M2 存储库的 JAR 档案而是作为来自/target/classes
目录的类文件添加到类路径中。出于这个原因,我不能使用 maven-shade-plugin 因为我收到一条消息:
“ Error creating shaded jar: error in opening zip file /home/user/workspace/my-project/project-a/target/classes
”。
当我project-a
从命令行构建时,mvn clean install
一切正常 - 生成了阴影 JAR。如何解决?
maven - 在多模块项目中使用 Maven 阴影插件 - NullPointerException
我有一个场景,我需要创建一个包含所有模块及其依赖项的多模块 maven 项目的 uber jar。我尝试使用 Maven 阴影插件。但它似乎只有在我在模块级别使用它时才有效。如果我在父 pom 中添加插件条目,那么构建会中断(它会尝试遮蔽父 pom)
这似乎很有意义,因为<packaging>
父 maven 项目是 pom。但是应该有一些方法可以为多模块项目创建一个 uber jar ......有什么想法吗?
jar - 存在重复类时,Maven shade 插件会导致构建失败吗?
Maven 阴影插件将项目的 Java 类及其依赖项合并到单个 über JAR 文件中。如果有任何重叠(例如,两个依赖项包含一个具有相同限定名称的类),它会发出警告并(如果我理解正确)使用它遇到的该类的最后一个版本。
对我来说,这似乎有点太松懈了。这种重叠很容易在运行时导致链接或其他问题,例如当重叠的类包含不同的字节码时。
是否可以将阴影插件配置为在重叠时使构建失败,而不仅仅是发出警告?这在没有人查看日志文件以查看是否有任何警告的 CI 服务器上特别有用。
java - 如何配置 maven shade 插件以在我的 jar 中包含测试代码?
我使用 shade maven 插件来构建我的项目,以便它的所有依赖项都包含在一个 jar 中(这使得它更容易在 Hadoop 上运行)。Shade 似乎默认排除了我的测试代码,这是可以理解的。因为我想对我的集群运行集成测试,所以我希望设置另一个配置文件来为此目的构建一个单独的 jar。有没有办法配置这个插件也包括测试代码?
java - 使用 Maven Shade 插件时出现 ClassNotFound 异常
我正在尝试关注此链接: http ://maven.apache.org/plugins/maven-shade-plugin/examples.html
我是Maven的新手。试图效仿这个例子,我觉得有点不够深入。
我能够让 Quartz Scheduler 开始使用 Spring。我希望能够使用 jar 文件从命令行运行它。
这是我使用的类和 pom 文件的列表。
编辑:
我能够得到一个阴影 jar 文件。我使用 mvn clean install
但是当我尝试从命令行运行它时,出现以下错误。
C:\Users\SpringExample\target>java -jar SpringExample-1.0-SNA
PSHOT-shaded.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/sonatype/haven/Ex
odusCli
Caused by: java.lang.ClassNotFoundException: org.sonatype.haven.ExodusCli
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.sonatype.haven.ExodusCli. Program will exit.
编辑2:
我使用此链接在上面的 pom 中使用了以下内容:
http://seanfreitag.wordpress.com/2011/07/25/create-an-executable-jar-with-dependencies-using-maven/
maven-2 - 是否有用于创建控制台应用程序的 Maven 架构?
是否可以通过mvn archetype:generate
具有主要功能的 maven 存根项目生成一个 maven 存根项目,并且部分构建过程包括制作 App.cmd/App.sh 以从 shell 运行应用程序?
看来我需要maven-shade-plugin来创建一个带有用于命令行启动的包装脚本的控制台应用程序 jar。但是,我不知道他们是否是配置 maven 项目以使用它并创建一个空的控制台应用程序的架构类型。
maven - Maven shade jar 抛出异常
我有以下例外:
cachedInputStream(Resource.java:61) at sun.misc.Resource.getByteBuffer(Resource.java:144) at java.net.URLClassLoader.defineClass(URLClassLoader.java:256) at java.net.URLClassLoader.access$000(URLClassLoader. java:58) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:197) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java. lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类: com.mainClass。程序将会退出。URLClassLoader.defineClass(URLClassLoader.java:256) 在 java.net.URLClassLoader.access$000(URLClassLoader.java:58) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:197) 在 java.security.AccessController.doPrivileged (本机方法)在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301 ) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类:com.mainClass。程序将会退出。URLClassLoader.defineClass(URLClassLoader.java:256) 在 java.net.URLClassLoader.access$000(URLClassLoader.java:58) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:197) 在 java.security.AccessController.doPrivileged (本机方法)在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301 ) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类:com.mainClass。程序将会退出。doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java: 301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类:com.mainClass。程序将会退出。doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java: 301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类:com.mainClass。程序将会退出。
我的pom:
java - Superfluous warnings when using maven-shade-plugin
I am using maven-shade-plugin for a simple maven project, the plugin successfully includes all the dependencies into a final "shaded" jar. The process works well every time and produces exactly what I need.
When run the "first" time (after a clean
), the plugin is quiet and produces very little output. However, when re-run (without a clean
from the last build), there are lots of warning messages such as this;
This are warning messages only and the final artifact works fine.
My question is simple: how can I safely workaround or suppress these warning messages without having to run a clean
first?
note: A possible solution would be to move to the maven-assembly-plugin, but I would prefer not to because the configuration for maven-shade-plugin is very nice and simple.