zoukankan      html  css  js  c++  java
  • Gradle Goodness: Skip Building Project Dependencies

    If we use Gradle in a multi-module project we can define project dependencies between modules. Gradle uses the information from the project dependencies to determine which tasks need to be run. For example if module B depends on module A and we want to build module B, Gradle will also build module A for us, because module B depends on it. But if we know for sure that module A is up to date and has not changed, we can also instruct Gradle to skip building module A, when we build module B.

    Let's start with the following module structure, where each module depends on the module above it. So module services depends on common and module web depends on services:

    .
    ├── common
    ├── services
    └── web

    When we want to build the service module we go to the services directory and execute the build task and we get the following output:

    $ gradle build
    :common:compileJava
    :common:processResources
    :common:classes
    :common:jar
    :services:compileJava
    :services:processResources
    :services:classes
    :services:jar
    :services:assemble
    :services:compileTestJava
    :services:processTestResources
    :services:testClasses
    :services:test
    :services:check
    :services:build
     
    BUILD SUCCESSFUL
     
    Total time: 8.013 secs

    We see in the output that first the common module is build, because the services module depends on it. But if we work on this project and we know for sure the common module is up to date and has not changed since the last build (for example we didn't checkout new sources from version control or changed sources in the common module ourselves), then we can skip building the common module. We use the command line option -a or --no-rebuild to tell Gradle to skip project dependencies.

    When we run the build task from the services directory using the command line option -a we get the following output:

    $ gradle -a build
    :services:compileJava
    :services:processResources
    :services:classes
    :services:jar
    :services:assemble
    :services:compileTestJava
    :services:processTestResources
    :services:testClasses
    :services:test
    :services:check
    :services:build
     
    BUILD SUCCESSFUL
     
    Total time: 5.626 secs

    This time only the services module is build, which also speeds up the build proces. Still this should only be used if we know ourselves the project dependencies are up to date.

    Written with Gradle 2.2.1.

  • 相关阅读:
    python 常用的一些库
    Windows Server 2016-存储新增功能
    Windows Server 2016-Hyper-V 2016新增功能
    Windows Server 2016-Win Ser 2016已删减内容
    Windows Server 2016-Win Ser 2016新增功能
    Windows Server 2016-WinSer 2016标准版与数据中心版的区别
    Windows Server 2016-重置目录还原模式密码
    Windows Server 2016-清理残留域控信息
    Windows Server 2016-抢占FSMO角色
    Windows Server 2016-重命名域控制器
  • 原文地址:https://www.cnblogs.com/GoAhead/p/4187482.html
Copyright © 2011-2022 走看看