如何正确构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:
- 文件>全部保存。
- 用main方法运行驱动程序或类。
- 文件>项目结构。
- select标签“工件”。
- 点击靠近窗口顶部的绿色加号button。
- 从Add下拉菜单中selectJAR。 select“从依赖模块”
- select主类。
- 单选button应该select“提取到目标JAR”。 按OK。
- 勾选“Build on make”
- 按应用并确定。
- 从主菜单中select构build下拉菜单。
- 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文件
对于那些从我的图像中受益的人:
文件 – >项目结构
这可能有点晚了,但我设法解决这个问题 – >用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议这是它的缺点:-)