mat*_*eoh 14 java dependencies jar intellij-idea maven
我正在使用Intellij Java 2016.2.2和Maven来创建一个非常简单的Java控制台应用程序.
我想添加一个外部库,所以我在Maven中添加我的依赖项,如下所示:
<dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
<version>2.12</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
它在IDE中运行时工作正常,但在外部控制台中没有(我有以下错误:java.lang.NoClassDefFoundError).
我检查过,由于某种原因,我刚刚生成的JAR中没有添加外部JAR.我还在"文件 - >项目结构"中尝试了很多东西,但仍然没有工作......
我只想用我的依赖项构建我的JAR,所以我可以使用以下命令在控制台中运行我的应用程序:
java -jar myproject.jar
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?谢谢你的帮助!
mat*_*eoh 25
我终于设法使用Intellij Java生成这个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>
Run Code Online (Sandbox Code Playgroud)
然后使用"clean"和"package"maven命令.
上面的最后3个步骤(关于MANIFEST.MF)似乎仍然是强制性的.
好的,所以您基本上想要创建一个“fat jar”(有时称为程序集),其中包含它自己的所有依赖项(通常,依赖项是外部的)。
您需要为此使用 Maven 插件。下面是一个示例程序集插件配置jar-with-dependencies:
<project>
...
<build>
...
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
...
</project>
Run Code Online (Sandbox Code Playgroud)
然后,只需运行
mvn package
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13898 次 |
| 最近记录: |