IntelliJ IDEA:如何将 Maven 依赖项放入构建工件的正确位置
IntelliJ IDEA: how to put maven dependency into correct location of builded artifact
我在 IntelliJ IDEA 2016.1.3 中有 java 项目,我正在将其构建到 jar 文件中(构建 -> 构建工件... -> 构建),一切正常,直到我想使用外部库 (org.apache.commons:commons-lang3:3.4),没什么大不了的,它在 IDE 中工作。但是提取的 jar 需要这种依赖性。
怎么做?
我尝试过项目结构 -> 项目设置 -> 工件 -> 并添加为库。
看看jar神器:
想要的依赖 jar 位于 jar 工件的根文件夹中,但是当尝试使用该代码时仍然出现此错误。
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
....
....
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 37 more
我错过了什么?
正如我在上面的评论中提到的,我使用了自定义实现而不是使用整个库。
但在另一个项目中,我刚刚 运行 遇到了同样的问题,这次是 nanohttpd,这当然不像以前那样容易实现: D
我发现 artifact/maven 依赖项的创建顺序很重要
因为我像以前一样首先添加了依赖项,但是在为工件创建配置之前。
瞧,依赖关系已被提取,最终的人工制品运行良好:)
我在 IntelliJ IDEA 2016.1.3 中有 java 项目,我正在将其构建到 jar 文件中(构建 -> 构建工件... -> 构建),一切正常,直到我想使用外部库 (org.apache.commons:commons-lang3:3.4),没什么大不了的,它在 IDE 中工作。但是提取的 jar 需要这种依赖性。 怎么做?
我尝试过项目结构 -> 项目设置 -> 工件 -> 并添加为库。
看看jar神器:
想要的依赖 jar 位于 jar 工件的根文件夹中,但是当尝试使用该代码时仍然出现此错误。
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
....
....
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 37 more
我错过了什么?
正如我在上面的评论中提到的,我使用了自定义实现而不是使用整个库。
但在另一个项目中,我刚刚 运行 遇到了同样的问题,这次是 nanohttpd,这当然不像以前那样容易实现: D
我发现 artifact/maven 依赖项的创建顺序很重要 因为我像以前一样首先添加了依赖项,但是在为工件创建配置之前。
瞧,依赖关系已被提取,最终的人工制品运行良好:)