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

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


当前回答

您可能想看一看Maven (http://maven.apache.org)。您既可以将它用作应用程序的主要构建过程,也可以仅通过Edit Configurations对话框执行某些任务。在Maven中创建一个模块的JAR的过程是相当简单的,如果您希望它在一个可自行执行的JAR中包含所有依赖项,那么这个过程也是非常简单的。

如果您以前从未使用过Maven,那么您应该阅读Better Builds With Maven。

其他回答

如果您在项目中使用第三方库,或者在创建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/我尝试了上面提到的步骤,一切都很顺利!

使用

mvn clean package spring-boot:repackage

在IntelliJ终端中输入以上命令。它生成一个带有Executable Jar的目标文件。

8.1.3想法

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

我猜,你必须在构建jar之前运行'make'

对于依赖项,只需检查“show library”并选择您想要的。

这在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文件

我尝试了大部分给出的答案,但在我的情况下,“out”文件夹(其中包含jar文件)没有被创建。这就完成了任务:

Build -> Build Artifacts ->(你会看到类名)-> Build

现在,“out”文件夹被创建,jar文件在其中。