gradle.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sat, 18 Feb 2017 16:02:47 +0200
changeset 2094 33c10259cb4d
parent 2086 c07317dca036
child 2095 b9bf144836b8
permissions -rw-r--r--
Running build on specific subproject.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2078
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
========
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
 Gradle
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
========
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
.. contents::
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
   :local:
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
Getting help
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
============
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
::
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
  $ gradle --help
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
2094
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    14
Working with subprojects
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    15
========================
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    16
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    17
Getting list of subprojects::
2083
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    18
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    19
  $ gradle projects
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    20
2094
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    21
Running build on specific subproject::
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    22
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    23
  $ gradle :$SUB:clean
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    24
  $ gradle -p $SUB clean
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    25
  $ gradle -Pmodile=$SUB clean
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    26
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    27
https://docs.gradle.org/current/userguide/intro_multi_project_builds.html
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    28
http://stackoverflow.com/questions/16976214/gradle-build-only-one-module
33c10259cb4d Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2086
diff changeset
    29
2078
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
Getting list of supported tasks
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
===============================
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
::
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
  $ gradle tasks
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
2083
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    36
Getting list of supported tasks in each subproject::
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    37
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    38
  $ gradle tasks --all
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    39
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    40
Getting help on task::
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    41
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    42
  $ gradle -q help --task build
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    43
2086
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    44
Similar but to each task::
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    45
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    46
  $ gradle model
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    47
2078
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
Build sources
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
=============
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
::
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
  $ gradle compileJava
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
  $ gradle compileTestJava
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
Run main class
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
==============
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
::
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
  $ gradle run
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
2086
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    61
Run tests
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    62
=========
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    63
::
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    64
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    65
  $ gradle test
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    66
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    67
To run tests with additional registered checks::
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    68
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    69
  $ gradle check
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    70
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    71
.. note::
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    72
   ``--rerun-tasks`` option *specifies that any task optimization is ignored*.
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    73
   In that way you may rerun tests even if there are no changed files::
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    74
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    75
     $ gradle test --rerun-tasks
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    76
2078
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    77
Stopping server
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    78
===============
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    79
::
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    80
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    81
  $ gradle --stop
e7fe6c24cf5f About Gradle.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    82
2083
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    83
List project dependencies
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    84
=========================
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    85
2086
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    86
List of project execution dependencies (it also download dependencies)::
2083
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    87
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    88
  $ gradle dependencies
2086
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
    89
  $ gradle dependencies --configuration compile
2083
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    90
  $ gradle dependencies -p $SUBPROJ
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    91
  $ gradle :$SUBPROJ:dependencies
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    92
  $ gradle :$SUBPROJ:dependencies --configuration testCompile
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    93
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    94
List of project plugin dependencies::
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    95
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    96
  $ gradle buildEnvironment
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    97
  $ gradle buildEnvironment -p $SUBPROJ
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    98
  $ gradle :$SUBPROJ:buildEnvironment
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
    99
2086
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   100
Paths to dependencies can be printed via task::
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   101
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   102
  task printDepPaths {
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   103
    doLast { configurations.runtime.each { println it } }
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   104
  }
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   105
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   106
All dependencies can be copied to single directory via task::
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   107
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   108
  task copyRuntimeLibs(type: Copy) {
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   109
    into "lib"
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   110
    from configurations.runtime
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   111
    // from configurations.testRuntime - configurations.runtime
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   112
  }
c07317dca036 Run tests.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2083
diff changeset
   113
2083
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   114
List project properties
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   115
=======================
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   116
::
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   117
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   118
  $ gradle properties
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   119
  $ gradle :$SUBPROJ:properties
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   120
  $ gradle properties -p $SUBPROJ
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   121
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   122
Dry tun
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   123
=======
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   124
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   125
``-m`` option allow parsing build scripts without actually executing them::
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   126
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   127
  $ gradle -m clean compile
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   128
75ae6a4ad500 Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2078
diff changeset
   129