# 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