我正在使用 Intellij Java 2016.2.2 和 Maven 创建一个非常简单的 Java 控制台应用程序。
我想添加一个外部库,所以我像这样在 Maven 中添加我的依赖项:
<dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
<version>2.12</version>
</dependency>
当我在 IDE 中运行它时,它工作正常,但在外部控制台中却不行(我有以下错误:java.lang.NoClassDefFoundError)。
我检查过,出于某种原因,外部 JAR 没有添加到我刚刚生成的 JAR 中。我还在“文件 -> 项目结构”中尝试了很多东西,但仍然无法正常工作......
我只想用我的依赖项构建我的 JAR,这样我就可以简单地在控制台中使用以下命令运行我的应用程序:
java -jar myproject.jar
我该怎么做?感谢您的帮助!
最佳答案
我终于设法用 Intellij Java 生成了这个 JAR,这是我的做法:
- 在pom.xml文件中添加依赖
- 转到文件 -> 项目结构 -> Artifact -> 新建 -> JAR -> 来自具有依赖项的模块
- 选择主类并点击确定
- 在您的项目中,在 src/main 中,创建“资源”文件夹
- 将“META-INF”(其中包含 MANIFEST.MF)文件夹移动到“资源”文件夹中
- 转到 Build -> build artifacts 来构建 JAR
编辑
更好(也更简单)的方法是在 pom.xml 文件中添加以下行:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>your.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后使用“clean”和“package”maven 命令。
上面的最后 3 个步骤(关于 MANIFEST.MF)似乎仍然是强制性的。
关于java - Intellij Java 2016 & Maven : how to embed dependencies in JAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39273877/