在IntelliJ IDEA中将外部库添加到工件jar中
如何在IntelliJ IDEA中向项目添加外部库,以便在构建工件时它仍然可以访问库中的类?
我从Project Structure创建了一个新的Jar工件,然后将外部JAR添加到Libraries,然后在Modules List中检查它,最后将它添加到Artifact的Output中。 这些都不起作用。 当我构建并尝试运行我的应用程序时,它会抛出一个错误:
Exception in thread "main" java.lang.NoClassDefFoundError:
我错过了什么,或者我完全错了?
这里有2个选项:
- 将依赖项提取到工件jar中,以便app是具有所有依赖项的单个可执行jar
- 通过
Manifest.MF
链接依赖的jar并将它们复制到应用程序主jar附近
我准备了一个演示两种方法的示例项目: HelloWithDependencies.zip 。
工件产生于out\single
和out\linked
目录。
相关配置:
如果您使用maven来构建应用程序,那么这不是添加外部库的正确方法。 你也应该
- 安装你的库如下
mvn install:install-file -Dfile=myJar.jar -DgroupId=com.yourproject -DartifactId=yourproject -Dversion={version} -Dpackaging=jar
。 - 使用如此处所述的系统路径。
选项1是首选,因为您不必在项目中保留jar。