author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Mon, 27 Feb 2017 22:54:57 +0200 | |
changeset 2107 | 6f77a1808a38 |
parent 2104 | 6931c02bbc0e |
child 2108 | 651a45561a46 |
permissions | -rw-r--r-- |
2078 | 1 |
|
2 |
======== |
|
3 |
Gradle |
|
4 |
======== |
|
5 |
.. contents:: |
|
6 |
:local: |
|
7 |
||
8 |
Getting help |
|
9 |
============ |
|
10 |
:: |
|
11 |
||
12 |
$ gradle --help |
|
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 |
2095
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
25 |
|
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
26 |
If subproject lies in hierarchy:: |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
27 |
|
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
28 |
$ gradle :$SUB/$SUBSUB:clean |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
29 |
$ gradle -p $SUB/$SUBSUB clean |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
30 |
|
2104
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
31 |
Skip building dependent modules, build just current module:: |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
32 |
|
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
33 |
$ gradle -a build |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
34 |
$ gradle --no-rebuild build |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
35 |
$ gradle -a :client:build |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
36 |
|
2095
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
37 |
Creating multilevel project:: |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
38 |
|
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
39 |
$ mkdir $PRJROOT |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
40 |
$ cd $PRJROOT |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
41 |
$ mkdir lvl1 lvl1/lvl2 |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
42 |
$ touch build.gradle lvl1/build.gradle lvl1/lvl2/build.gradle |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
43 |
$ { echo include "'lvl1'"; echo include "'lvl1/lvl2'"; } >settings.gradle |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
44 |
$ gradle projects |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
45 |
|
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
46 |
``settings.gradle`` can include per line or a list of subprojects:: |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
47 |
|
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
48 |
include 'sub1', 'sub2', 'sub2' |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
49 |
include 'lvl1' |
b9bf144836b8
Creating multilevel project.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2094
diff
changeset
|
50 |
include 'lvl1/lvl2' |
2094
33c10259cb4d
Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2086
diff
changeset
|
51 |
|
33c10259cb4d
Running build on specific subproject.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2086
diff
changeset
|
52 |
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
|
53 |
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
|
54 |
|
2104
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
55 |
Managing tasks |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
56 |
============== |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
57 |
|
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
58 |
List tasks:: |
2078 | 59 |
|
60 |
$ gradle tasks |
|
61 |
||
2083
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
62 |
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
|
63 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
64 |
$ gradle tasks --all |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
65 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
66 |
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
|
67 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
68 |
$ 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
|
69 |
|
2086 | 70 |
Similar but to each task:: |
71 |
||
72 |
$ gradle model |
|
73 |
||
2104
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
74 |
Skip task during build with ``-x`` option:: |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
75 |
|
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
76 |
$ gradle -x test build |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
77 |
$ gradle -x :core:build :client:build |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
78 |
|
2078 | 79 |
Build sources |
80 |
============= |
|
81 |
:: |
|
82 |
||
83 |
$ gradle compileJava |
|
84 |
$ gradle compileTestJava |
|
85 |
||
86 |
Run main class |
|
87 |
============== |
|
88 |
:: |
|
89 |
||
90 |
$ gradle run |
|
91 |
||
2086 | 92 |
Run tests |
93 |
========= |
|
2104
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
94 |
|
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
95 |
To run test:: |
2086 | 96 |
|
97 |
$ gradle test |
|
98 |
||
2104
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
99 |
To skip tests in build:: |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
100 |
|
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
101 |
$ gradle -x test build |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
102 |
|
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
103 |
Better solution involves passing system property with ``build.gradle``:: |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
104 |
|
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
105 |
test.onlyIf { ! Boolean.getBoolean('skip.tests') } |
6931c02bbc0e
Skipping tasks and dependencies.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2095
diff
changeset
|
106 |
|
2086 | 107 |
To run tests with additional registered checks:: |
108 |
||
109 |
$ gradle check |
|
110 |
||
111 |
.. note:: |
|
112 |
``--rerun-tasks`` option *specifies that any task optimization is ignored*. |
|
113 |
In that way you may rerun tests even if there are no changed files:: |
|
114 |
||
115 |
$ gradle test --rerun-tasks |
|
116 |
||
2078 | 117 |
Stopping server |
118 |
=============== |
|
119 |
:: |
|
120 |
||
121 |
$ gradle --stop |
|
122 |
||
2083
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
123 |
List project dependencies |
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 |
|
2086 | 126 |
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
|
127 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
128 |
$ gradle dependencies |
2086 | 129 |
$ 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
|
130 |
$ 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
|
131 |
$ gradle :$SUBPROJ:dependencies |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
132 |
$ 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
|
133 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
134 |
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
|
135 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
136 |
$ gradle buildEnvironment |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
137 |
$ 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
|
138 |
$ gradle :$SUBPROJ:buildEnvironment |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
139 |
|
2086 | 140 |
Paths to dependencies can be printed via task:: |
141 |
||
142 |
task printDepPaths { |
|
143 |
doLast { configurations.runtime.each { println it } } |
|
144 |
} |
|
145 |
||
146 |
All dependencies can be copied to single directory via task:: |
|
147 |
||
148 |
task copyRuntimeLibs(type: Copy) { |
|
149 |
into "lib" |
|
150 |
from configurations.runtime |
|
151 |
// from configurations.testRuntime - configurations.runtime |
|
152 |
} |
|
153 |
||
2083
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
154 |
List project properties |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
155 |
======================= |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
156 |
:: |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
157 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
158 |
$ gradle properties |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
159 |
$ gradle :$SUBPROJ:properties |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
160 |
$ 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
|
161 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
162 |
Dry tun |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
163 |
======= |
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
164 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
165 |
``-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
|
166 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
167 |
$ 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
|
168 |
|
75ae6a4ad500
Getting list of supported tasks. List project dependencies. List project properties.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2078
diff
changeset
|
169 |