Compile、Make和Build的区别

针对Java的开发工具,一般都有Compile、Make和Build三个菜单项,完成的功能的都差不多,但是又有区别。

编译,是将源代码转换为可执行代码的过程。编译需要指定源文件和编译输出的文件路径(输出目录)。Java的编译会将java编译为class 文件,将非java的文件(一般成为资源文件、比如图片、xml、txt、poperties等文件)原封不动的复制到编译输出目录,并保持源文件夹的目 录层次关系。

在Java的集成开发环境中,比如Eclipse、IDEA中,有常常有三种与编译相关的选项Compile、Make、Build三个选项。这三个选项最基本的功能都是完成编译过程。但又有很大的区别,区别如下:

1、Compile:只编译选定的目标,不管之前是否已经编译过;

2、Make:编译选定的目标,但是Make只编译上次编译变化过的文件,减少重复劳动,节省时间(具体怎么检查未变化,这个就不用考虑了,IDE自己内部会搞定这些的);

3、Build:是对整个工程进行彻底的重新编译,而不管是否已经编译过。Build过程往往会生成发布包,这个具体要看对IDE的配置 了,Build在实际中应用很少,因为开发时候基本上不用,发布生产时候一般都用ANT等工具来发布。Build因为要全部编译,还要执行打包等额外工 作,因此时间较长。


IDEA中 compile 多用于编译单个文件;

make 多用于编译项目和模块代码(编译没编译过和修改过的文件,特指java\groovy等);

build 多用于部署项目/模块(包括资源文件),这里边还漏了一个东东,"package file",部署jsp、html等这些资源文件。

总而言之,build 是 对网站打包 的意思!

Intellij IDEA 14.x 菜单项中Compile、Make和Build的区别相关推荐

  1. cocos2d-x初探学习笔记(14)--菜单项

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man Cocos2d-x的菜单中提供了多种菜单项的生 ...

  2. html 注销 按钮,用户登录/注销时隐藏/替换菜单项

    我希望能够在用户注销时隐藏甚至替换"我的帐户"按钮, 并且希望在用户登录时隐藏或替换"注册"按钮. 我将如何去做呢?我仍然是WordPress的业余爱好者, 并 ...

  3. 如何:对 SharePoint 列表项隐藏 ECB 中的菜单项

    可以通过使用功能框架向编辑控制块 (ECB) 菜单添加新的自定义操作.但是,您不能使用此方法进行相反的操作,即隐藏现有的 ECB 菜单项,因为它们是通过使用 ECMAScript(JavaScript ...

  4. 如何在系统菜单中添加一个自己的菜单项

    CSDN地址: http://topic.csdn.net/u/20080722/18/8517e419-7788-4d1c-9029-7a806f5da46c.html 全文: 如题,目前我要做的就 ...

  5. Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码

    Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱. 然而在使用的过程中 ...

  6. 【转】Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码

    Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱. 然而在使用的过程中 ...

  7. Xcode 5中缺少Provisioning Profiles菜单项

    本文翻译自:Provisioning Profiles menu item missing from Xcode 5 After spending a whole day installing a f ...

  8. java菜单项_java中菜单条和菜单项,详细解析

    在java作为一门非常重要的编程语言,在我们的日常使用中还是非常好用的,而且功能也是十分强大的.java中有很多的繁琐的基础知识,今天为大家介绍一下有关于菜单条和菜单项的内容,一起来看看吧. 首先说一 ...

  9. MFC应用程序中enable或disable菜单项

    在MFC应用程序中需要enable或disable菜单项时,在主菜单中调用 CMenu::EnableMenuItem不起作用......如何disable菜单项?       根据以往的经验,要解决 ...

最新文章

  1. 直观地理解车辆的运动控制
  2. 2018年,这15个领域将会呈现指数级变化
  3. liferay中使用自己的数据库
  4. C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用...
  5. 设置ASP.NET中的TextBox控件不缓存上次输入的信息
  6. 赤峰市职称计算机,关注丨赤峰今年评职称最新政策全在这……
  7. Spark Java API:foreach、foreachPartition、lookup
  8. 行内元素,块级元素,各自特点及其相互转化
  9. 在Android中处理屏幕布局变化
  10. android统计库,android jacoco 统计多模块
  11. linux内核分析作业8:理解进程调度时机跟踪分析进程调度与进程切换的过程
  12. 本科毕业查重过程分享与经验
  13. Vue - 滑块拖动拼图验证(滑块验证安全检测)
  14. 程序员,从培训班出来的都是垃圾!!!?
  15. Oracle (01)Oracle数据库的安装步骤.搭建上课所用的数据库环境.table (二维表).查看表结构.数据库中常用的数据类型
  16. 计算机键盘上的每一个按键编码,键盘按键修理
  17. Python计算机视觉 图像扭曲(仿射扭曲)
  18. 一款好用的基于vue的录屏插件recordrtc,拿走不谢
  19. C语言入门:猴子吃桃问题
  20. 实验一 8255并行接口实验

热门文章

  1. 标准IO库--unix环境高级编程读书笔记
  2. C++和C语言的前世今生,两者有什么血缘关系?
  3. C++的就业前景怎么样?
  4. (转载)python-hwdata
  5. JAVA中的枚举使用总结
  6. 委托、Lambda表达式、事件系列06,使用Action实现观察者模式,体验委托和事件的区别...
  7. 教你怎么样快速降低室内装饰设计污染
  8. 分配给 主机的 Evaluation Mode 许可证已过期。建议升级许可证。
  9. 设计模式笔录(一),什么是设计模式
  10. 关于VM虚拟机与主机不能互PING的一种可能的原因