我有一个包含单个模块和一些依赖项的项目。 我想创建一个JAR文件,放在另一个目录中,其中包含已编译的模块。此外,我希望我的模块旁边存在依赖项。
无论我如何调整IntelliJ的“构建JAR”过程,我的模块的输出都是空的(除了一个META-INF
文件)。
我有一个包含单个模块和一些依赖项的项目。 我想创建一个JAR文件,放在另一个目录中,其中包含已编译的模块。此外,我希望我的模块旁边存在依赖项。
无论我如何调整IntelliJ的“构建JAR”过程,我的模块的输出都是空的(除了一个META-INF
文件)。
文件 -> 项目结构 -> 项目设置 -> 构件 -> 点击+(加号) -> Jar -> 从带有依赖项的模块...
如果需要使jar可运行,请选择主类(具有main()
方法的类)。
选择提取到目标Jar
点击确定
点击应用/确定
以上设置了jar将保存到的“骨架”。要实际构建和保存它,请执行以下操作:
构建 -> 构建构件 -> 构建
尝试从以下位置提取.jar文件:
ProjectName
┗ out
┗ artifacts
┗ ProjectName_jar
┗ ProjectName.jar
这个问题在2017年仍然存在,希望能帮助到某些人!
我找到了两种方法可以在IntelliJ 2017.2下创建可工作的jar文件:
1. 从IntelliJ创建Artifact:
您需要更改Manifest目录:
<project folder>\src\main\java
用"resources"替换"java"
<project folder>\src\main\resources
以下是正确的显示方式:
然后,选择您想要打包到JAR文件中或与其相邻的依赖项
构建您的工件,请转到“构建工件”并选择“重建”。 它将创建一个带有您的JAR文件及其依赖项的“out”文件夹。
2.使用maven-assembly-plugin
在pom文件中添加build部分
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<finalName>ServiceCreate</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.svt.optimoo.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
此过程将在“target”文件夹下创建jar文件。
我最近遇到了这个问题,认为如果缺少任何先前的解决方案或链接的细节,这些步骤很容易遵循。
如何使用IntelliJ IDEA 14.1.5创建.jar
:
以下是使用Maven项目创建JAR文件的两个示例,步骤详解:
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>somePackage.sample</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
屏幕截图:
4. 点击搜索图标并输入maven,打开maven项目框,
MANIFEST.MF需要在你的资源文件夹中,Main.Class需要引用{package}-{class-name-that-contains-main-class}
当我使用这些解决方案时,会出现以下错误:
java -jar xxxxx.jar
<project folder>\src\main\java
将Java更改为资源
<project folder>\src\main\resources
可能有点晚了,但我用以下方法解决了这个问题 -> 用Winrar打开并删除META-INF文件夹中的ECLIPSEF.RSA和ECLIPSEF.SF。此外,在MANIFEST.MF中添加"Main-class: main_class_name"(不含“.class”),确保在最后一行按下“Enter”键两次,否则无法运行。
使用
mvn clean package spring-boot:repackage
在IntelliJ终端中输入上述命令。它会生成一个可执行的Jar目标文件。