本文主要介绍在IDEA中怎么打包,及可以用哪种方式打包。


若是有指正或补充的,欢迎留言~  ٩(●̮̃•)۶


接下来进入正题:

IDEA中打包需要先进行配置,so,我们先打开<abbr title:"Project Structure">Project Structure窗口。

打开方式很简单,直接快捷键Ctrl+Shift+Alt+S打开,也可以在项目左上角的Flie中打开。

打开Project Structure窗口后,选择Artifacts即可开始配置打包方式了。

1."From modules with dependencies…"打包

  使用这种打包方式,会将项目完整的一起打包。这样做的好处就是打好包后,不会缺类少类。

  选择“+”,点击“JAR”,在"Empty"和"From modules with dependencies…"中选择“From modules with dependencies…”。

  在弹出的“Create JRA from Modules”窗口中,添加项目的主程序类。必须选择第一个选项“extract to the target JAR”。

  需要注意:在向JAR包添加“META-INF/MANIFEST.MF”时,必须将其路径选择和src同一级目录,其他级别目录会导致打好的JAR包不可用。

  

  

2. "Empty"打包

  使用"Empty"打包的好处就是,可以只将自己需要用的类进行打包,无需将项目完全打包,避免jar包或war包过于庞大臃肿。

  选择“+”,点击“JAR”,"Empty"和"From modules with dependencies…"选择“Empty”。

  进行如下图的JAR目录结构的创建(最好按照原项目的结构进行创建)。

  

  在创建过JAR包目录后,将需要的.class类导入其中(注意:必须是编译后的.class类,否则打出来的jar包将会无类可用)如下图:

  

  在添加自己需要的.class文件后,还需要配置“META-INF/MANIFEST.MF”,如下图:

  

  配置过“META-INF/MANIFEST.MF”后,点击“Apply”,再点击“OK”即可,如下图:

  

以上就是在IDEA中两种打包的介绍和操作步骤。

值得思考的是,在打包的时候,无论是哪种方式,我们都需要向其添加“MANIFEST.MF”文件,那么这个文件到底有什么用呢?

想知道的小伙伴可以戳我≧◔◡◔≦

IDEA中项目的两种打包方式的更多相关文章

  1. 关于springboot项目的jar和war两种打包方式部署的区别

    关于springboot项目的jar和war两种打包方式部署的区别 关于springboot项目的jar和war两种打包方式部署的区别? https://bbs.csdn.net/topics/392 ...

  2. Springboot中IDE支持两种打包方式,即jar包和war包

    Springboot中IDE支持两种打包方式,即jar包和war包 打包之前修改pom.xml中的packaging节点,改为jar或者war    在项目的根目录执行maven 命令clean pa ...

  3. maven的两种打包方式

    1.maven目前在web上面的使用方式很普遍,而打包的方式也存在很多方式 2.因为涉及一个项目调用另外一个项目的包,并将另外一个项目打成jar的形式便于管理 3.maven打包第一种方式: 将项目检 ...

  4. Android中Fragment与Activity之间的交互(两种实现方式)

    (未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...

  5. Java中匿名类的两种实现方式(转)

    使用匿名内部类课使代码更加简洁.紧凑,模块化程度更高.内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到.然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式 ...

  6. 软件公司的两种管理方式 总体来说,这个世界上存在两种不同的软件公司的组织结构。我把他们叫做 Widget Factory(小商品工厂) 和 Film Crews(电影工作组

    软件公司的两种管理方式 一个简单的回答应该是——“因为在我们的社会里,我们总是会认为薪水和会和职位的层次绑在一起”.但是,这个答案同时也折射出一个事实——我们的薪资是基于我们的所理解的价值,但这并没有 ...

  7. 巨蟒python全栈开发数据库前端6:事件onclick的两种绑定方式&&onblur和onfocus事件&&window.onload解释&&小米商城讲解

    1.回顾上节内容(JavaScript) 一.JavaScript概述 1.ECMAScript和JavaScript的关系 2.ECMAScript的历史 3.JavaScript是一门前后端都可以 ...

  8. Storm 学习之路(六)—— Storm项目三种打包方式对比分析

    一.简介 在将Storm Topology提交到服务器集群运行时,需要先将项目进行打包.本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明.主要打包方式有以下三种: 第一种:不加任何插 ...

  9. Storm 系列(六)—— Storm 项目三种打包方式对比分析

    一.简介 在将 Storm Topology 提交到服务器集群运行时,需要先将项目进行打包.本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明.主要打包方式有以下三种: 第一种:不加任 ...

随机推荐

  1. Vue前端压缩图片

    一.在组件包下新建compressImage.js // 压缩图片 // eslint-disable-next-line no-unused-vars export function compres ...

  2. Python实用笔记 (9)高级特性——列表生成式

    列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, ...

  3. MongoDB快速入门教程 (3.3)

    3.4.聚合 3.4.1.什么是聚合? MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*) 例如上图 ...

  4. 在 Spring Boot 中,如何干掉 if else!

    需求 传统实现 策略模式实现 ClassScanner:扫描工具类源码 总结 需求 这里虚拟一个业务需求,让大家容易理解.假设有一个订单系统,里面的一个功能是根据订单的不同类型作出不同的处理. 订单实 ...

  5. tomcat发布时候jar包问题

    今天遇到个问题就是,启动tomcat时,报:java.lang.NullPointerException at org.apache.jsp.**_jsp.jspInit(index_jsp.java ...

  6. Vue中$nextTick的理解

    Vue中$nextTick的理解 Vue中$nextTick方法将回调延迟到下次DOM更新循环之后执行,也就是在下次DOM更新循环结束之后执行延迟回调,在修改数据之后立即使用这个方法,能够获取更新后的 ...

  7. h5页面自动播放视频、音频_关于媒体文件自动全屏播放的实现方式

    在移动端(ios和android)播放视频的时候,我们即使定义了autoplay属性,仍然不能自动播放.这是由于手机浏览器为了防止浪费用户的网络流量,在默认情况下是不允许媒体文件自动播放的,除非用户自 ...

  8. 【Python】any() 或者 or

    前言 在我之前的文章中有any()和all()的对比:any()和all()对比其中介绍了any()函数的基本特性---可迭代对象中有任意一个不为False的时候,返回True,如果可迭代对象为空的话 ...

  9. A*算法求K短路模板 POJ 2449

    #include<cstdio> #include<queue> #include<cstring> using namespace std; const int ...

  10. Docker镜像-列出镜像

    列出镜像 镜像体积 虚悬镜像 中间层镜像 列出部分镜像 要想列出已经下载下来的镜像,可以使用docker images 或者 docker image ls 命令. $ docker image ls ...