在IntelliJ IDEA中将外部库添加到工件jar

时间:2017-02-13 04:29:52

标签: java maven intellij-idea build dependencies

如何在IntelliJ IDEA中为项目添加外部库,以便在构建工件时它仍然可以访问库中的类?

我从Project Structure创建了一个新的Jar工件,然后将外部JAR添加到Libraries,然后在Modules List中检查它,最后将它添加到Artifact的Output中。这些都不起作用。当我构建并尝试运行我的应用程序时,它会抛出一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: <path of the class trying to use>

我错过了什么,或者我完全错了?

2 个答案:

答案 0 :(得分:12)

这里有2个选项:

  • 将依赖项提取到工件jar中,以便app是具有所有依赖项的单个可执行jar
  • 通过Manifest.MF链接相关的jar并将它们复制到应用程序主jar
  • 附近

我准备了一个展示两种方法的示例项目:HelloWithDependencies.zip

工件生成out\singleout\linked目录。

相关配置:

single

linked

答案 1 :(得分:1)

如果您使用maven构建应用程序,那么这不是添加外部库的正确方法。你应该

  1. 安装您的图书馆,如mvn install:install-file -Dfile=myJar.jar -DgroupId=com.yourproject -DartifactId=yourproject -Dversion={version} -Dpackaging=jar所示。
  2. 使用系统路径,如解释here
  3. 选项1是首选,因为您不必在项目中保留jar。