首页 文章

如何正确构建IntelliJ的 jar ?

提问于
浏览
369

我有一个包含单个模块和一些依赖项的项目 . 我想在一个单独的目录中创建一个包含已编译模块的jar . 另外,我希望我的模块旁边有依赖项 .

无论我如何扭曲IntelliJ的“构建jar”进程,我模块的输出都显示为空(除了META-INF文件) .

13 回答

  • -3

    以下是使用IntelliJ 10构建jar的方法http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/

    文件 - >项目结构 - >项目设置 - >工件 - >单击绿色加号 - > jar - >从具有依赖关系的模块...

    上面将“骨架”设置为jar将保存到的位置 . 要实际构建和保存它,请执行以下操作:

    提取到目标Jar

    Build |构建神器

  • 5

    我最近遇到了这个问题,如果任何先前的解决方案或链接缺少详细信息,我认为这些步骤很容易理解 .

    如何使用IntelliJ IDEA 14.1.5创建 .jar

    • 文件>全部保存 .

    • 使用main方法运行驱动程序或类 .

    • 文件>项目结构 .

    • 选择选项卡"Artifacts" .

    • 点击窗口顶部附近的绿色加号按钮 .

    • 从添加下拉菜单中选择JAR . 选择"From modules with dependencies"

    • 选择主类 .

    • 单选按钮应选择"extract to the target JAR."按OK .

    • 选中复选框"Build on make"

    • 按“应用”和“确定” .

    • 从主菜单中,选择构建下拉列表 .

    • 选择选项构建工件 .

  • 122

    这仍然是2017年的一个问题,我希望它会帮助那里的人!我在IntelliJ 2017.2下找到了创建工作jar的2种可能性

    1. Creating artifact from IntelliJ:

    • 转到项目结构:

    File menu

    • 创建一个新工件:

    Create a new artifact

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

    enter image description here

    您必须更改清单目录:

    <project folder>\src\main\java
    

    用“资源”替换“java”

    <project folder>\src\main\resources
    

    它应该是这样的:

    correct way for new manifest

    • 然后你选择你想要在你的jar中打包的依赖项,或者你的jar文件

    • 要构建工件,请构建工件并选择“rebuild” . 它将使用您的jar文件及其依赖项创建一个“out”文件夹 .

    enter image description here

    2. Using 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>
    
    • 创建新的运行/调试配置:

    Create a new run/debug configuration:

    • 选择申请:

    Choose application

    • 填写表格

    • 在最后执行构建后添加"assembly:single" maven目标

    enter image description here

    Final setup

    • 保存,然后运行

    enter image description here

    此过程将在“target”文件夹下创建jar文件

    JAR file location

  • 1

    对于那些像我一样受益于图像的人:

    文件 - >项目结构

    enter image description here

    enter image description here

    enter image description here

    enter image description here

  • 0

    这可能有点晚了,但我设法用这种方式解决 - >用winrar打开并删除META-INF文件夹中的ECLIPSEF.RSA和ECLIPSEF.SF,而且输入“Main-class:main_class_name”(不带“.class” )在MANIFEST.MF . 确保在最后一行之后按两次“Enter”,否则它将无效 .

  • 27

    想法8.1.3

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

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

    对于依赖项,只需选中“show library”并选择你想要的 .

  • 112

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

    如果您之前从未使用过Maven,那么您想阅读Better Builds With Maven .

  • 440

    使用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>
    
  • 0

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

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

    上面提到的方法 .

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

  • 0

    其他一些答案是无用的,因为一旦从maven项目重新导入IntelliJ IDEA项目,所有更改都将丢失 .

    jar的构建需要由run / debug触发配置,而不是项目设置 .

    Jetbrains有一个很好的描述,你可以在这里完成这个:

    https://www.jetbrains.com/help/idea/maven.html

    向下滚动到“为Maven目标配置触发器”一节 .

    (他们描述的唯一缺点是他们的截图是默认的黑白配色方案,而不是超级棒的darcula主题 . 唉!)

    所以,基本上,你所做的就是打开“Maven Projects”面板,你会发现你感兴趣的项目(在你的情况下,构建你的jar的项目),你找到你想要执行的maven目标,(通常是“包”目标创建jar,)你打开它上面的上下文菜单,(右键单击Windows机器),然后会出现“运行/调试前执行...”选项,你可以选择它会从那里带你的手 . 真的很容易

  • 0

    如果您尝试使用kotlin构建jar,则需要创建 src/main/java 文件夹并将此文件夹用作META-INF文件夹的位置 .

  • 1

    如果您正在使用spring / mvn项目,则可以使用以下命令:

    mvn package -DskipTests
    

    jar文件将保存在目标directoy上 .

  • 1

    Ant和Maven被广泛使用 . 我更喜欢Ant,我觉得它更轻巧,你开发人员更有控制力 . 有些人认为这是它的缺点:-)

相关问题