java - IntelliJ - Maven 添加外部 jar 文件但 java.lang.NoClassDefFoundError
问题描述
我正在使用 IntelliJ 版本 11.0.7 (2020.1.3) 创建了一个简单的 maven 项目并将我的 jar 添加到其中
文件 -> 项目结构 -> 新建项目库 -> Java -> 选择我的 jar -> 确定 -> 确定
在该 jar 文件中,存在运行应用程序所需的所有依赖项。
没有编译时错误,但是当我运行我的 Maven 项目时,它会抛出这个异常:
Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException
添加此 jar 后,它会引发下一个丢失的 jar 异常,同样,当我添加该 jar 中使用的所有依赖项时,一切正常。
当我添加到外部库时,有什么方法可以自动生成所有依赖项并从 jar 中添加到外部库中?
解决方案
in that jar file, there are all the dependencies present which requires to run the application.
您确定所有依赖项都存在吗?你的下一个声明说After adding this jar it is throwing exception about the next missing jar, likewise when I added all the dependencies which are used inside that jar then everything works fine.
您的 jar 文件是否托管在 maven 存储库中?如果是,只需在 mavenpom.xml
文件中声明它,它将管理所有传递依赖项。如果它不在 maven 存储库中,您需要运行mvn install
命令将其安装到本地 maven 存储库中,稍后在您的pom.xml
文件中引用它。如果您正确打包包含正确pom.xml
内部的 jar 文件,它也会自动解决您的传递依赖项。
推荐阅读
- php - 为 spatie/phpunit-watcher 的执行选择 php 版本
- python - CNN:检查输入时出错:预期密集有 2 个维度,但得到了形状为 (391、605、700、3) 的数组
- laravel - Laravel 数据迁移到新结构
- phpstorm - 无需外部使用的 PhpStorm 检查代码
- windows - 使用登录身份与使用 LDAP 身份验证的服务进行无缝身份验证
- python - 将 numpy 数组元素的不同组合组合到数据帧中
- javascript - 打开一个不使用 if 编码的物化模态
- javascript - JavaScript - 如何判断用户是否刚刚返回到上一页
- cors - 缺少 CORS http 响应授权标头
- version-control - 在创建新子分支中显示所有待处理任务