Files
gradle-training/README.md

185 lines
4.1 KiB
Markdown

# Gradle training
Training files for learning Gradle
##01-build-and-test
Example contains one class and one simple test written in TestNG.
List all available tasks:
gradle tasks
Try to compile source code:
gradle compile
Run tests:
gradle tests
Test report is available in build/reports/tests/index.html
## 02-pmd
Execute PMD check on project.
gradle check
You should see one warning about empty if statement in source code.
Results are stored in: build/reports/pmd/main.html
## 03-checkstyle
Execute Checkstyle on project. Configuration of Checkstyle is stored in config/checkstyle/checkstyle.xml
gradle check
Error report is available in file: build/reports/checkstyle/main.xml
## 04-findbugs
Execute FindBugs on project.
gradle check
Report is available in file: build/reports/findbugs/main.html
## 05-jdepend
Execute JDepend on project.
gradle check
Report is available in file: build/reports/jdepend/main.txt
You should see there one dependency cyle.
## 06-maven-deployer
Upload artifact to local repo (directory).
gradle uA
Artifact will be stored at: /idea/training/repo
## 07-c-language
It is possible to build project written in C language by gradle.
Gradle automatically detects toolchain e.g. Visual Studio or GCC.
gradle mainExecutable
Binary is stored in build/binaries/mainExecutable
## 08-c-visual-studio
Gradle is able to generate project files for Visual Studio for C/C++.
gradle mainVisualStudio
ii .\visualStudio\mainExe.sln
Solution file is stored in visualStudio/mainExe.sln
## 09-custom-task-dolast
Gradle evaluates build scripts in two phases. The first one is configuration.
Gradle examines each task definition and execute code in definition.
The second phase is execution where it actually executes code.
The code is stored in doLast block. If you omit that block then println
will execute always even when you run `gradle tasks`
gradle tasks
gradle helloWorld
## 10-custom-task-dofirst
doLast allows to append execution code at the end of task. There is another
method doFirst which prepends code before current code. It's useful when
building decorators.
gradle tasks
gradle helloWorld
## 11-task-class
Gradle allows to define custom task class. This class should contain
one method with annotation @TaskAction. This method will be executed.
Each property defined on class level is configurable from gradle task
(see verboseToday).
gradle tasks
gradle today
gradle verboseToday
## 12-custom-plugin
It's possible to specify tasks outside build.gradle and then "include" file.
Gradle uses notion of plugins. Check helloPlugin.gradle file.
gradle tasks
gradle helloFromPlugin
## 13-plugin-from-gist
Gradle allows to include code/plugins from network resource.
In this example plugin is stored as gist at Github
- https://gist.github.com/georgik/71663c6d8d4e01783733
gradle tasks
gradle helloFromGist
## 14-custom-groovy-plugin
Example of stand alone plugin written in Groovy. Compile and install this
plugin to your local Maven repository. Then you will be able to use it in
the next example.
gradle install
Pay attention to special file: src/main/resources/META-INF/gradle-pluginslines-count.properties
This file will cause that it will be possible to apply plugin by it's id instead
of java class name. It's preferred solution in Gradle world, because it gives
you more flexibility when changing plugin implementation
## 15-use-custom-plugin
You need to install plugin to your local Maven storage (see example 14.).
This example shows how to include plugin from local Maven storage.
Plugin is just counting lines in build.gradle file in current directory.
gradle tasks
gradle countLines
## 16-stop-build
It is possible to stop build by throwing exception.
gradle workingTask
gradle failingTask
## 17-testng-groovy
Example combines usage of TestNG for testing and tests written in Groovy.
It is necessary to declare 'useTestNG()' in test configuration.
Otherwise tests won't be executed.
gradle test
Reports are stored in build/reports/tests/index.html