栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

关于Maven依赖的NoClassDefFoundError

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Maven依赖的NoClassDefFoundError

默认情况下,Maven不会在生成的JAR文件中捆绑依赖项,并且在尝试通过命令行执行JAR文件时,不会在类路径中提供依赖项。这就是为什么Java VM在尝试执行代码时找不到库类文件的原因。

你可以使用

-cp
参数在类路径上手动指定库,但这很快就变得很麻烦。

更好的解决方案是将库代码“着色”到输出JAR文件中。有一个名为maven-shade-plugin的Maven插件可以执行此操作。你需要在POM中注册它,并且在运行时,它还会自动构建一个“ uber-JAR”,其中包含你的类以及库代码的类

mvn package

要简单地捆绑所有必需的库,请将以下内容添加到你的POM中:

<project>  ...  <build>    <plugins>      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-shade-plugin</artifactId>        <version>1.6</version>        <executions>          <execution> <phase>package</phase> <goals>   <goal>shade</goal> </goals>          </execution>        </executions>      </plugin>    </plugins>  </build>  ...</project>

完成此操作后,你可以重新运行上面使用的命令:

$ mvn package$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App

如果要根据应包含的JAR进行进一步的shade插件配置,为可执行的JAR文件指定Main-Class,等等,请参见maven-shade-plugin站点上的“示例”部分。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号