首页 > Java > java教程 > 正文

从命令行运行时如何修复 Maven 依赖项上的'NoClassDefFoundError”?

Barbara Streisand
发布: 2024-10-25 09:07:02
原创
235 人浏览过

How to Fix

如何修复“Maven 依赖项上的 NoClassDefFoundError”

尝试从命令行运行 Maven 项目时,您可能会遇到 NoClassDefFoundError ,表明缺少所需的依赖项。

此错误的主要原因是 Maven 不会自动在其构建的 JAR 文件中包含依赖项。要解决此问题,您需要将库代码“遮蔽”到输出 JAR 文件中。

要实现此目的,您可以使用 maven-shade-plugin。以下是将其添加到 POM 中的方法:

<code class="xml"><project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.5.2</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project></code>
登录后复制

此插件将自动创建一个包含您的类和库依赖项的“uber-JAR”。

注册插件后,您可以运行以下命令:

<code class="sh">$ mvn package
$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App</code>
登录后复制

如果错误仍然存​​在,您可以进一步配置阴影插件以指定应包含哪些 JAR,或为可执行 JAR 文件设置 Main-Class。请参阅 maven-shade-plugin 文档以获取更多信息。

以上是从命令行运行时如何修复 Maven 依赖项上的'NoClassDefFoundError”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!