我有一个项目,包含一个单独的模块,和一些依赖。 我想在一个单独的目录中创建一个JAR,其中包含编译后的模块。此外,我希望在我的模块旁边有依赖项。
无论我如何扭曲IntelliJ的“构建JAR”过程,我的模块的输出都是空的(除了一个META-INF文件)。
我有一个项目,包含一个单独的模块,和一些依赖。 我想在一个单独的目录中创建一个JAR,其中包含编译后的模块。此外,我希望在我的模块旁边有依赖项。
无论我如何扭曲IntelliJ的“构建JAR”过程,我的模块的输出都是空的(除了一个META-INF文件)。
当前回答
这里有2个maven项目的例子,一步一步:
方法一:使用maven和pom.xml构建jar
File, new, project, maven create a package , create a java program inside that package at pom.xml, add maven-jar-plugin. <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,
点击清洁,然后点击安装 jar文件将显示在目标文件夹中 使用以下命令测试罐子 java jar
方法2:使用maven构建jar,不修改pom.xml
文件、新建、项目、maven 创建一个包,在该包中创建一个Java程序(如上所述) 文件->项目结构->项目设置-> Artifacts ->单击绿色加号-> Jar ->来自依赖模块
非常重要!
清单。MF需要在你的资源文件夹中,Main.Class需要引用{package}-{class-name-that-contains-main-class}
然后单击菜单上的构建,构建工件,构建
在out文件夹中找到罐子
运行它:)
其他回答
在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>
我最近遇到了这个问题,如果之前的解决方案或环节缺少细节,我认为这些步骤很容易遵循。
如何使用IntelliJ IDEA 14.1.5创建一个。jar:
文件>保存全部。 用main方法运行驱动程序或类。 文件>项目结构。 选择标签“Artifacts”。 点击窗口顶部附近的绿色加号按钮。 从添加下拉菜单中选择JAR。选择“From modules with dependencies” 选择主类。 单选按钮应该选择“提取到目标JAR”。按下OK。 选中“基于生成构建”复选框 按应用并确定。 从主菜单中,选择build下拉菜单。 选择选项构建构件。
以下是IntelliJ IDEA 2018.3 Help的官方解答。我试过了,成功了。
要从模块构建JAR文件; 在主菜单上,选择Build | Build Artifact。 从下拉列表中,选择JAR类型的所需工件。 该列表显示为当前项目配置的所有工件。要构建所有已配置的构件,请选择Build all 构件的选择。
其他一些答案是无用的,因为一旦您从maven项目重新导入IntelliJ IDEA项目,所有的更改都将丢失。
jar的构建需要由运行/调试配置触发,而不是由项目设置触发。
Jetbrains在这里描述了如何实现这一目标:
https://www.jetbrains.com/help/idea/maven.html
向下滚动到名为“为Maven目标配置触发器”的部分。
(他们的描述唯一的缺点是,他们的截图是默认的黑白配色方案,而不是超级棒的darcula主题。啊!)
所以,基本上,你要做的就是打开“Maven项目”面板中,你发现感兴趣的项目,(在你的情况下,项目构建jar,)在你找到你想要的Maven目标执行,(通常是“包”的目标创建jar,)你打开上下文菜单,(右键单击Windows机器),将会有一个“运行/调试之前执行…”选项,您可以选择,它会把你的手从那里。真的很容易。
这在2017年仍然是一个问题,我希望它能帮助到那里的人! 我发现在IntelliJ 2017.2下创建工作罐有2种可能性
1. 从IntelliJ创建工件:
进入项目结构:
创建一个新的工件:
选择主类,并确保更改manifest文件夹:
您必须更改清单目录:
<project folder>\src\main\java
将“java”替换为“resources”
<project folder>\src\main\resources
它应该是这样的:
然后你选择你想要打包在jar或jar文件附近的依赖项 要构建您的工件,请前往构建工件并选择“重建”。它将创建一个包含jar文件及其依赖项的“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>
创建新的运行/调试配置:
选择应用程序:
填写表格 在构建后最后执行“assembly:single”maven目标
保存它,然后运行
这个过程将在“目标”文件夹下创建jar文件