Groovy Koans Project
The Groovy Koans project is a collection of small exercises in the form of unit tests, designed to get Java developers up to speed on Groovy features and common idioms. It starts by teaching you basic Groovy building blocks, and gradually builds your knowledge towards metaprogramming, slurpers, and all the goodness Groovy has to offer.
- Make sure you have JDK 1.6+ installed
- Download and unzip the Koans (or clone the GitHub repository with
$ git clone https://github.com/nadavc/groovykoans.git)
- Remove the solutions from the Koans using
$ ./gradlew removeSolutions
- Execute Koan01 with
$ ./gradlew koan01and fail (or any other Koan using
$ ./gradlew koan##)
- Fix code, and execute again
- Keep going until you're fluent at Groovy :)
I like IntelliJ. How can I use it to debug/edit the Koans?
- Download and install IntelliJ IDEA Community Edition
- In IDEA,
File -> Open Projectand open the
I like Eclipse. How can I use it to debug/edit the Koans?
- Download and install Eclipise IDE for Java Developers
- In Eclipse,
File -> Import...,
Existing Projects into Workspace, and select the project directory
I am forced to work behind a proxy. Can I still run the Koans?
gradlew script downloads Groovy and Gradle for you, so you don't have to set up anything by yourself.
To allow gradlew to work through your proxy, simply add the following parameters:
$ ./gradlew koan01 -Dhttp.proxyHost=[http proxy] -Dhttp.proxyPort=[http proxy port]
The answers are already there! What's the point?
One of the perks of learning through Koans is that once your Koan is solved, you can compare your solution with the 'official' solution and perhaps learn from that comparison as well. It is also a way to make sure that the Koans are indeed solvable by filling in the blanks.
For optimal learning experience, however, you should first try to solve the Koans without those solutions as reference.
To remove the solutions, run
$ ./gradlew removeSolutions from the root of your unzipped Koans.
Are there more Koans planned? How will I know?
These are the Koans that are currently planned:
- Embedding Groovy
- Creating your own DSL
- Creating your own builder
Credits and License
Please feel free to leave comments and pull requests :)