gpt4 book ai didi

java - 使用 Maven Shade 插件时出现 ClassNotFound 异常

转载 作者:行者123 更新时间:2023-12-01 16:06:24 25 4
gpt4 key购买 nike

我正在尝试点击此链接: http://maven.apache.org/plugins/maven-shade-plugin/examples.html

我是 Maven 新手。我觉得尝试遵循这个例子有点不深入。

我能够让 Quartz Scheduler 与 Spring 一起工作。我希望能够使用 jar 文件从命令行运行它。

这是我使用的类和 pom 文件的列表。

shade maven plugin

编辑:

我可以获得一个阴影 jar 文件。我使用了 mvn clean install

但是当我尝试从命令行运行它时,出现以下错误。

C:\Users\SpringExample\target>java -jar SpringExample-1.0-SNA
PSHOT-shaded.jar
线程“main”中的异常 java.lang.NoClassDefFoundError: org/sonatype/haven/Ex
odusCli
引起原因:java.lang.ClassNotFoundException:org.sonatype.haven.ExodusCli
在 java.net.URLClassLoader$1.run(来源未知)
在 java.security.AccessController.doPrivileged( native 方法)
在 java.net.URLClassLoader.findClass(来源未知)
在 java.lang.ClassLoader.loadClass(来源未知)
在 sun.misc.Launcher$AppClassLoader.loadClass(来源未知)
在 java.lang.ClassLoader.loadClass(来源未知)
找不到主类:org.sonatype.haven.ExodusCli。程序将退出。

编辑2:

我使用此链接在上面的 pom 中使用了以下内容:

http://seanfreitag.wordpress.com/2011/07/25/create-an-executable-jar-with-dependencies-using-maven/

 <project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>org.sonatype.haven.ExodusCli</Main-Class>
<Build-Number>123</Build-Number>
</manifestEntries>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>

最佳答案

我没有使用过 Shade,但我怀疑:

  • 未显示用于调用 Shade 的 pom

  • 展示如何设置 Main-Class 的 Maven 示例假定 org.sonatype.haven.HavenCli 类位于正在组装的 jar 中的某个位置

  • 你没有这样的类(class)

  • 您应该更改 <mainClass>org.sonatype.haven.HavenCli</mainClass> 中的类名称任何你想用作主类的东西

关于java - 使用 Maven Shade 插件时出现 ClassNotFound 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7363398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com