我有一个具有某些依赖关系的Maven项目。其中一个依赖项是:
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.5.0</version>
</dependency>
只要我在Eclipse工作,一切都很好。但是当我打包并尝试使用生成的jar文件时(如果重要的话,从命令行),我收到此错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/NativeLibrary
虽然这个类在IDE中绝对可以访问。
我的猜测是,默认情况下,Maven并没有打包项目的依赖项,但在这种情况下,为什么我不会收到更多错误消息抱怨更多未找到的类?
答案 0 :(得分:1)
Maven只会为您的项目/组件创建一个jar。这不包括外部jar(依赖项)。如果你想/需要在jar中包含依赖项的内容,你应该创建一个胖jar或超级jar。对于超级罐,您可以使用shade plugin。