zoukankan      html  css  js  c++  java
  • Compile、Make和Build的区别(as make, build, clean, run)

    Compile、Make和Build的区别 - 熔 岩 - 51CTO技术博客

    http://lavasoft.blog.51cto.com/62575/436216/

    针对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因为要全部编译,还要执行打包等额外工作,因此时间较长。
     

    上面的文章已经说的很明白了:compile, make都编译,但make是增量编译,compile是全新编译, build整个工程的全新编译,要生成binary的。
     
    下面是关于as/idea make project, clean project, make module, build的区别,写的非常好,一看就懂:

    Android Studio中Make Project,Clean Project,Rebuild Project区别 – 移安分享
    http://www.91yian.com/278.html

    这里以Android Studio2.1.1为例,亲自验证过,见下图:

    屏幕快照 2016-05-24 下午1.44.58         屏幕快照 2016-05-24 下午2.11.13

    1. Make Project:编译Project下所有Module,一般是自上次编译后Project下有更新的文件,不生成apk。
    2. Make Selected Modules:编译指定的Module,一般是自上次编译后Module下有更新的文件,不生成apk。
    3. Clean Project:删除之前编译后的编译文件,并重新编译整个Project,比较花费时间,不生成apk。
    4. Rebuild Project:先执行Clean操作,删除之前编译的编译文件和可执行文件,然后重新编译新的编译文件,不生成apk,这里效果其实跟Clean Project是一致的,这个不知道Google搞什么鬼~~
    5. Build APK:前面4个选项都是编译,没有生成apk文件,如果想生成apk,需要点击Build APK。
    6. Generate Signed APK:生成有签名的apk。

    注意:

    1. 对于Clean和Rebuild看到最后的效果是一样的。
    2. 平时小的改动直接用Make Project就可以,可以看到只有它有快捷方式,表明这个功能要经常用。对于一些大的改动比如更新lib,大功能修改等,用Clean或Rebuild,毕竟这两个编译起来要费时间。
    3. 如果有的时候死活编译不过,多试试Clean吧,会有意想不到的效果!
  • 相关阅读:
    JSTL日期格式化用法
    JSTL详解1
    Mybatis插入后返回主键
    JSTL详解2
    jsp与jsp之间传参数如何获取
    [转] J2EE面试题集锦(附答案)
    [转] 修炼一名程序员的职业水准(林庆忠原创)
    [转] 应聘Java笔试时可能出现问题及其答案(第三部分)
    [转] 与大家一起分享JAVA源代码查询网站
    [转] 应聘Java笔试时可能出现问题及其答案(第四部分)
  • 原文地址:https://www.cnblogs.com/bluestorm/p/6688414.html
Copyright © 2011-2022 走看看