我有一个项目,包含一个单独的模块,和一些依赖。 我想在一个单独的目录中创建一个JAR,其中包含编译后的模块。此外,我希望在我的模块旁边有依赖项。

无论我如何扭曲IntelliJ的“构建JAR”过程,我的模块的输出都是空的(除了一个META-INF文件)。


当前回答

以下是IntelliJ IDEA 2018.3 Help的官方解答。我试过了,成功了。

要从模块构建JAR文件; 在主菜单上,选择Build | Build Artifact。 从下拉列表中,选择JAR类型的所需工件。 该列表显示为当前项目配置的所有工件。要构建所有已配置的构件,请选择Build all 构件的选择。

其他回答

下面是如何使用IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/构建一个罐子

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

如果您需要使jar可运行,请选择一个主类(带有Main()方法的类)。

上面设置了“骨架”,即罐子将保存到的位置。要实际构建并保存它,请执行以下操作:

提取到目标Jar

OK

构建|构建Artifact |构建

尝试从。jar文件中提取

ProjectName | out | artifacts | ProjectName_jar | ProjectName.jar

当我使用这些解决方案这个错误来:

java -jar xxxxx.jar

在xxx.jar中没有主清单属性

解决方案是:

您必须更改清单目录:

<project folder>\src\main\java 

将Java更改为资源

<project folder>\src\main\resources

如果您在项目中使用第三方库,或者在创建MANIFEST时遇到问题。MF文件,在运行使用

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

上述方法。

相反,我建议您创建一个空JAR,并手动将所有其他元素添加到输出根中。关于这种方法的一篇精彩的博客文章可以在这里找到:http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/我尝试了上面提到的步骤,一切都很顺利!

以下是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机器),将会有一个“运行/调试之前执行…”选项,您可以选择,它会把你的手从那里。真的很容易。