| = Groovy |
| The Groovy development team |
| :revdate: 24-02-2014 |
| :build-icon: http://ci.groovy-lang.org:8111/app/rest/builds/buildType:(id:Groovy_Jdk7Build)/statusIcon |
| :noheader: |
| :groovy-www: http://groovy.codehaus.org/ |
| :groovy-ci: http://ci.groovy-lang.org?guest=1 |
| :jdk: http://www.oracle.com/technetwork/java/javase/downloads |
| :bintray-latest-version-image: https://api.bintray.com/packages/groovy/maven/groovy/images/download.png |
| :bintray-latest-version-link: https://bintray.com/groovy/maven/groovy/_latestVersion |
| :bintray-watch-image: https://www.bintray.com/docs/images/bintray_badge_color.png |
| :bintray-watch-link: https://bintray.com/groovy/maven/groovy/view?source=watch |
| |
| [.left.text-left] |
| image::http://groovy.codehaus.org/images/groovy-logo.png[] |
| {groovy-www}[Groovy] is an agile and dynamic language for the Java Virtual Machine. It builds upon the strengths of Java, but has additional power features inspired by languages like Python, Ruby and Smalltalk. |
| |
| Groovy makes modern programming features available to Java developers with almost-zero learning curve as well as supports Domain-Specific Languages and other compact syntax so your code becomes easy to read and maintain. |
| |
| Groovy makes writing shell and build scripts easy with its powerful processing primitives, OO abilities and an Ant DSL. |
| |
| It also increases developer productivity by reducing scaffolding code when developing web, GUI, database or console applications. Groovy simplifies testing by supporting unit testing and mocking out-of-the-box. Groovy also seamlessly integrates with all existing Java classes and libraries and compiles straight to Java bytecode so you can use it anywhere you can use Java. |
| |
| == Downloading |
| |
| Latest Groovy version is available on Bintray image:{bintray-latest-version-image}[Bintray latest version, link={bintray-latest-version-link}] |
| |
| Binary distribution links are on the package page. |
| |
| Maven, Gradle and Ivy dependency declaration snippets are available on specific files of a particular module. |
| |
| image:{bintray-watch-image}[Get automatic notifications about new "groovy" versions link={bintray-watch-link}] |
| |
| == Building |
| |
| Build is image:{build-icon}[build status, link={groovy-ci}]. |
| |
| To build you will need: |
| |
| * {jdk}[JDK 1.7+] |
| |
| To build everything using Gradle (the command below will download Gradle automatically, you do not need to download it first). |
| |
| ./gradlew clean dist |
| |
| This will generate a distribution similar to the zip you can download on the Groovy download page. |
| |
| To build everything and launch unit tests, use |
| |
| ./gradlew test |
| |
| If you want to launch one unit test, use this. <TestClassName> is like `groovy.GroovyMethodsTest`. |
| |
| ./gradlew :test --tests <TestClassName> |
| |
| To build from IntelliJ IDEA |
| |
| ./gradlew jarAll idea |
| |
| Then open the generated project in IDEA. |
| |
| To build from Eclipse |
| |
| ./gradlew jarAll eclipse |
| |
| Then open the generated project and the generated subprojects in Eclipse. But be aware that Eclipse tends to be more limited in its ability to reproduce a gradle build structure. The generated project files may contain a circular dependency which may or may not prevent Eclipse from using them. It depends on the Eclipse version, if this is an issue or not. |
| |
| == InvokeDynamic support |
| |
| The Groovy build supports the new Java 7 JVM instruction `invokedynamic`. If you want to build Groovy with invokedynamic, you can use the project property `indy`: |
| |
| ./gradlew -Pindy=true clean test |
| |
| Please note that the following Gradle tasks generate both indy and non indy variants of the jars, so you don't need to use the system property: |
| |
| * dist |
| * install |
| * uploadArchives |
| |
| == Continuous Integration Server |
| |
| The official CI server runs {groovy-ci}[here] (login as user guest and leave the password blank) and is sponsored by http://www.jetbrains.com[JetBrains]. |
| |
| == License |
| |
| Groovy is licensed under the terms of the http://www.apache.org/licenses/LICENSE-2.0.html[Apache License, Version 2.0] |