gpt4 book ai didi

java - Intellij Java 2016 & Maven : how to embed dependencies in JAR?

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:53 24 4
gpt4 key购买 nike

我正在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com