如何正确构buildIntelliJ的jar子?

我有一个包含单个模块的项目,还有一些依赖项。 我想创build一个jar包,在一个单独的目录,其中包含编译模块。 另外,我想在我的模块旁边有依赖关系。

无论我如何扭曲IntelliJ的“构buildjar”过程,我的模块的输出显示为空(除了META-INF文件)。

以下是如何使用IntelliJ 10构build一个jar包http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/

文件 – >项目结构 – >项目设置 – >工件 – >点击绿色加号 – > Jar – >从依赖关系的模块…

以上将“骨架”设置为将被保存到的位置。 要实际构build并保存,请执行以下操作:

提取到目标jar子

构build| 构build神器

我最近有这个问题,并认为这些步骤很容易遵循,如果任何先前的解决scheme或链接是缺less细节。

如何使用IntelliJ IDEA创build一个.jar 14.1.5:

  1. 文件>全部保存。
  2. 用main方法运行驱动程序或类。
  3. 文件>项目结构。
  4. select标签“工件”。
  5. 点击靠近窗口顶部的绿色加号button。
  6. 从Add下拉菜单中selectJAR。 select“从依赖模块”
  7. select主类。
  8. 单选button应该select“提取到目标JAR”。 按OK。
  9. 勾选“Build on make”
  10. 按应用并确定。
  11. 从主菜单中select构build下拉菜单。
  12. select选项构build工件。

这在2017年仍然是一个问题,我希望它能帮助那里的人! 我发现在IntelliJ 2017.2下创build工作jar的两种可能性

1.从IntelliJ创build工件:

  • 转到项目结构:

文件菜单

  • 创build一个新的工件:

创建一个新的工件

  • select主类,并确保更改清单文件夹:

在这里输入图像说明

您必须更改清单目录:

 <project folder>\src\main\java 

将java更改为资源

 <project folder>\src\main\resources 

这是它应该是这样的:

正确的方式为新的清单

  • 然后你select你想要在你的jar中打包的依赖关系,或者你的jar文件附近

  • 要构build您的工件去构build工件,并select“重build”。 它会用你的jar文件及其依赖关系创build一个“out”文件夹。

在这里输入图像说明

2.使用maven-assembly-plugin

将生成部分添加到POM文件

  <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> 
  • 创build一个新的运行/debuggingconfiguration:

创建一个新的运行/调试配置:

  • select应用程序

选择应用程序

  • 填写表格
  • 在最后执行构build之后添加“assembly:single”maven目标

在这里输入图像说明

最终设置

  • 保存,然后运行

在这里输入图像说明

此过程将在“目标”文件夹下创buildjar文件

JAR文件的位置

对于那些从我的图像中受益的人:

文件 – >项目结构

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

这可能有点晚了,但我设法解决这个问题 – >用winrar打开,删除META-INF文件夹中的ECLIPSEF.RSA和ECLIPSEF.SF,而且把“Main-class:main_class_name”(不带“.class” )在MANIFEST.MF中。 确保在最后一行之后按两次“Enter”,否则不能工作。

理念8.1.3

Jar是可以的,因为在'output'目录中有编译输出(project / out / production //)

我想,你必须在构buildjar之前运行“make”

只要select“show library”并select你想要的就可以了。

你可能想看看Maven( http://maven.apache.org )。 您可以将其用作应用程序的主要构build过程,也可以通过“编辑configuration”对话框执行某些任务。 在Maven中创build模块的JAR的过程相当简单,如果您希望它将所有的依赖包括在一个可执行的JAR中,那也是微不足道的。

如果你以前从未使用过Maven,那么你想阅读使用Maven更好的构build 。

使用Maven你可以使用这个插件:

  <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>[path you class main]</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> 

如果在项目中使用第三方库,或者在正确创buildMANIFEST.MF文件时遇到问题,那么运行使用生成的JAR文件时可能会产生冲突

 File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > ..... 

上面提到的方法。

相反,我build议您创build一个空的JAR,并手动添加所有其他元素到输出的根。 这个方法的一个美妙的博客文章可以在这里find: http : //karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/我尝试了那里提到的步骤,一切正常为了我!

Ant和Maven被广泛使用。 我更喜欢Ant,我觉得它更轻量级,开发人员更加控制。 有人会build议这是它的缺点:-)