Installing groovy on windows

Distributions

Distributions are bundles of source or class files needed to build or use Groovy.

All Apache projects provide a source zip which lets anyone build the software from scratch. If any doubt arises, you can regard the source zip as the authoritative artifact for each release. We also provide binary, downloadable documentation and SDK (combines src, binary and docs) convenience artifacts. You can also find a link to a non-ASF Windows installer convenience executable (if available).

Verification

We provide OpenPGP signatures (‘.asc’) files and checksums (‘.sha256’) for every release artifact. We recommend that you verify the integrity of downloaded files by generating your own checksums and matching them against ours and checking signatures using the KEYS file which contains the OpenPGP keys of Groovy’s Release Managers across all releases.

Newer releases have two sets of verification links. The dist labelled links are through the normal Apache distribution mechanism. The perm labelled links are through the Apache archive server. The latter of these won’t change but may not be available for a short while (usually less than a day) after a release. Older releases are only available from the archive server.

Groovy 4.0 is a bleeding edge version of Groovy designed for JDK8+ with much improved JPMS support.

4.0.0-alpha-3 distributions

binary
dist: asc sha256
perm: asc sha256
source
asc sha256
documentation
dist: asc sha256
perm: asc sha256
SDK bundle
dist: asc sha256
perm: asc sha256

Please consult the change log for details.

4.0.0-alpha-2 distributions

binary
asc sha256
source
asc sha256
documentation
asc sha256
SDK bundle
asc sha256
Windows installer
(community artifact)

Please consult the change log for details.

Groovy 3.0 is the latest stable version of Groovy designed for JDK8+ with a new more flexible parser (aka Parrot parser).

3.0.7 distributions

binary
dist: asc sha256
perm: asc sha256
source
asc sha256
documentation
dist: asc sha256
perm: asc sha256
SDK bundle
dist: asc sha256
perm: asc sha256
Windows installer
(community artifact)

Please consult the change log for details.

Groovy 2.5 is the previous stable version of Groovy.

2.5.14 distributions

binary
dist: asc sha256
perm: asc sha256
source
asc sha256
documentation
dist: asc sha256
perm: asc sha256
SDK bundle
dist: asc sha256
perm: asc sha256
Windows installer
(community artifact)

Please consult the change log for details.

Groovy 2.4 is an earlier version of Groovy still in widespread use. Important: Releases before 2.4.4 weren’t done under the Apache Software Foundation and are provided as a convenience, without any warranty.

2.4.21 distributions

binary
dist: asc sha256
perm: asc sha256
source
asc sha256
documentation
dist: asc sha256
perm: asc sha256
SDK bundle
dist: asc sha256
perm: asc sha256
Windows installer
(community artifact)

Please consult the change log for details.

Other versions

Downloads for all versions are hosted (and mirrored) in:

  • Apache’s release mirrors and archive repository.
  • Groovy’s artifactory instance (includes pre-ASF versions).

You can also read the changelogs for all versions.

Invoke dynamic support

Please read the invoke dynamic support information if you would like to enable indy support and are using Groovy on JDK 7+.

Operating system/package manager installation

Installing Apache Groovy from a distribution zip is not hard but if you don’t want the hassle, consider the alternatives listed here.

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix-based systems:

Windows users: see the SDKMAN install instructions for potential options.

Homebrew is «the missing package manager for macOS»:

SnapCraft is «the app store for Linux». Groovy is supported in the store or via the commandline:

MacPorts is a system for managing tools on macOS:

Scoop is a command-line installer for Windows inspired by Homebrew:

Chocolatey provides a sane way to manage software on Windows:

Linux/*nix users: you may also find Groovy is available using your preferred operating system package manager, e.g.: apt, dpkg, pacman, etc.

Windows users: consider also the Windows installer (see links above under Distributions).

From your build tools

If you wish to add Groovy as a dependency in your projects, you can refer to the Groovy JARs in the dependency section of your project build file descriptor:

Gradle Maven Explanation
Groovy versions 1.x to 3.x
org.codehaus.groovy:groovy:x.y.z org.codehaus.groovy
groovy
x.y.z
Just the core of Groovy without the modules*. Also includes jarjar’ed versions of Antlr, ASM, and an internal copy of needed CLI implementation classes.
org.codehaus.groovy:groovy-$module:x.y.z org.codehaus.groovy
groovy-$module
x.y.z
«$module» stands for the different optional groovy modules*. Example: groovy-sql .
org.codehaus.groovy:groovy-all:x.y.z org.codehaus.groovy
groovy-all
x.y.z
pom
Core plus all of the modules (excluding optional modules) according to the version packaging scheme**.
Groovy versions 4.0+
As above but use org.apache.groovy instead of org.codehaus.groovy .
* Modules:
2.4.X: «ant», «bsf», «console», «docgenerator», «groovydoc», «groovysh», «jmx», «json», «jsr223», «nio», «servlet», «sql», «swing», «test», «templates», «testng» and «xml»
2.5.0: as above but excluding optional module «bsf» plus «cli-picocli», «datetime», «macro», «test-junit5». Optional modules: «bsf», «dateutil», «cli-commons»
2.5.1+: as above but «groovy-jaxb» is moved to become optional
3.0.0+: as above but «groovy-yaml» is a new optional module
4.0.0+: as above but «groovy-contracts», «groovy-typecheckers» and «groovy-macro-library» are new optional modules, «groovy-jaxb» and «groovy-bsf» are no longer supported, «groovy-yaml» is now included in «groovy-all», and «groovy-testng» is now an optional module
** Packaging Scheme:
2.4.X: The core plus all the modules merged into one «fat jar». Optional dependencies are marked as optional, so you may need to include some of the optional dependencies to use some features of Groovy, e.g. AntBuilder, GroovyMBeans.
2.5+: A «fat pom» groovy-all-x.y.z.pom referring to the core plus all modules (excluding optional ones). In order to cater to the module system of Java 9+, the groovy-all-x.y.z.jar file is no longer available.
Indy jars
You can access the indy version of the core or a module jar by using the ‘indy’ classifier.

Maven repositories

Groovy version(s) Release Jars
Groovy versions 1.x to 3.x Maven Central or Groovy artifactory release repository
Groovy versions 4.x+ Maven Central or Groovy artifactory release repository

Note for the development community: developers needing access to pre-release artifacts to assist with integration testing leading up to an official release should consult the appropriate developer documentation.

Как установить Groovy консоль.

Что такое Groovy я писать не буду, об этом вы сможете прочитать в wikipedia. Скажу только, что Groovy позволяет писать код на Java без лишних оберток, в стиле Ruby или Python. Но я буду рассказывать здесь не про сам язык Groovy, а про установку Groovy консоли, которая позволяет отлаживать автотесты написанные на java. B в groovy консоли это действительно очень удобно делать.

Для начала скачаем бинарный дистрибутив с официального сайта Groovy http://groovy.codehaus.org/Download

На момент написания статьи это Groovy 2.0.4

Для того, чтобы у вас работал Groovy, вам необходимо поставить java на свой компьютер, об этом я писал в статье «Установка JAVA. Отличие JDK от JRE»

Распаковываем архив и переносим папку groovy-2.0.4 в удобное нам место, у меня это диск C

Далее необходимо прописать все необходимые переменные окружения.

Для этого (В windows 7) Щелкаем правой кнопкой мыши на «Мой компьютер» — «Свойства» —

«Дополнительные параметры системы» —- переключаемся на вкладку «Дполнительно» —- нажимаем на «Переменные среды» в открывшемся окне в «системные переменные» нажимаем «Создать», в имя переменной пишем GROOVY_HOME в значении переменной C:\groovy-2.0.4 ( указываем путь куда вы перенесли папку groovy-2.0.4) Нажимаем «Ок»

Далее ищем в списке системных переменных, переменную «Path» щелкаем по ней, вписываем туда дополнительный путь » C:\groovy-2.0.4\bin», нажимаем «Ок»

Все, установка Groovy консоли завершена. Теперь чтобы открыть нашу Groovy консоль необходимо нажать «Пуск» — в поле «Найти программы и файлы» ввести «cmd»— нажать на найденный файл cmd.exe

В обработчике команд перейти на C:\groovy-2.0.4\, ввести команду groovyConsole, нажать Enter

и у вас откроется вот такая симпатичная консолька.

На этом все, как пользоваться самой groovy консолью вы можете посмотреть в этом видео от Алексея Баранцева:

Install Groovy

1. Download

In this download area, you will be able to download the distribution (binary and source), the Windows installer and the documentation for Groovy.

For a quick and effortless start on Mac OSX, Linux or Cygwin, you can use SDKMAN! (The Software Development Kit Manager) to download and configure any Groovy version of your choice. Basic instructions can be found below.

1.1. Stable

Combined binary / source / documentation bundle: Distribution bundle

You can learn more about this version in the release notes or in the changelog.

If you plan on using invokedynamic support, read those notes.

1.2. Snapshots

For those who want to test the very latest versions of Groovy and live on the bleeding edge, you can use our snapshot builds. As soon as a build succeeds on our continuous integration server a snapshot is deployed to Artifactory’s OSS snapshot repository.

1.3. Prerequisites

Groovy 3.0 requires Java 6+ with full support up to Java 8. There are currently some known issues for some aspects when using Java 9 snapshots. The groovy-nio module requires Java 7+. Using Groovy’s invokeDynamic features require Java 7+ but we recommend Java 8.

The Groovy CI server is also useful to look at to confirm supported Java versions for different Groovy releases. The test suite (getting close to 10000 tests) runs for the currently supported streams of Groovy across all the main versions of Java each stream supports.

2. Maven Repository

If you wish to embed Groovy in your application, you may just prefer to point to your favourite maven repositories or the JCenter maven repository.

2.1. Stable Release

Just the core of groovy without the modules (see below).

«$module» stands for the different optional groovy modules «ant», «bsf», «console», «docgenerator», «groovydoc», «groovysh», «jmx», «json», «jsr223», «servlet», «sql», «swing», «test», «testng» and «xml». Example: groovy-sql

The core plus all the modules. Optional dependencies are marked as optional. You may need to include some of the optional dependencies to use some features of Groovy, e.g. AntBuilder, GroovyMBeans, etc.

To use the InvokeDynamic version of the jars just append ‘:indy’ for Gradle or indy for Maven.

3. SDKMAN! (The Software Development Kit Manager)

This tool makes installing Groovy on any Bash platform (Mac OSX, Linux, Cygwin, Solaris or FreeBSD) very easy.

Simply open a new terminal and enter:

Follow the instructions on-screen to complete installation.

Open a new terminal or type the command:

Then install the latest stable Groovy:

After installation is complete and you’ve made it your default version, test it with:

Groovy за 15 минут – краткий обзор

Groovy — объектно-ориентированный язык программирования разработанный для платформы Java как альтернатива языку Java с возможностями Python, Ruby и Smalltalk.

Groovy использует Java-подобный синтаксис с динамической компиляцией в JVM байт-код и напрямую работает с другим Java кодом и библиотеками. Язык может использоваться в любом Java проекте или как скриптовый язык.

Возможности Groovy (отличающие его от Java):

— Статическая и динамическая типизация
— Встроенный синтаксис для списков, ассоциативных массивов, массивов и регулярных выражений
— Замыкания
— Перегрузка операций

Более того, почти всегда java-код — это валидный groovy-код.

Установка

Для установки нужно скачать архив с оф. сайта , распаковать его в удобное место и добавить переменyю окружения GROOVY_HOME, и добавить путь до groovy/bin в PATH:

В IDE NetBeans 7.0 поддержка groovy идет из коробки, для IDE Eclipse существует очень хороший плагин, который можно взять здесь.

Groovy

Самое главное отличие от java: в Groovy всё является объектами. Все примитивные типы сразу же упаковываются в объекты. Т.е. «int x» на самом деле является «Integer x»

Следует не забывать о том, что все упаковочные типы — неизменяемые, поэтому каждый раз при каком-либо вычислении будет создаваться новый объект.

Строки в Groovy

1) Java Strings — строки в одинарных кавычках
2) Groovy Strings, они же GStrings — в обычных кавычках
В строках groovy можно вставлять параметры, в обычные строки — нельзя

К строкам применимы операции + и *

Так же к строкам применимы ++ и — — (т.к. в groovy поддерживается перегрузка операторов)

В groovy есть поодержка регулярных выражений на уровне конструкций языка:

Встроенная поддержка maps + lists

Так же на уровне конструкций языка поддерживаются словари (maps) и списки:

Ranges

Получать доступ к элементам списков в groovy можно следующим образом:

Range — это такой же объект, поэтому возможны конструции, подобные последней. Отрицательные индексы, как в python, возвращают элементы с конца списка.

Range можно составить из строк:

Более того, range можно сделать из любого объекта, у которого есть методы next() и prev().

Циклы

Циклы в groovy точно такие же, как и в java, плюс к ним добавляется еще один «foreach»:

Функции

Ключевое слово return указывать не обязательно — по умолчанию будет возвращено значение последней упомянутой переменной в фукции.

Closures

Closure — это анонимная функция

У многих объектов есть методы, в качестве параметров которым передаются closure:

Доступно большое количество методов для обработки последовательностей, к которым можно применять замыкания:

В closure так же не обязательно использовать ключевое слово return. Если явно не задано имя параметру, то по умолчанию используется it.

Так как closure является объектом, то ничего не мешает возвращать его из другого closure, и таким образом создавать функции высших порядков:

Файлы

Для директорий есть функции eachFile и eachFileRecursive:

Для обработки текстовых файлов — функция eachLine:

Писать в файлы так же очень удобно:

Классы

Неизменяемые классы задаются с помощью аннотации Immutable:

При использовании этой аннотации нужно явно указывать, какого типа данных поле.

Операторы

Проверяет переменную a, и если в ней null или false, то берет указанное следом значение. Иначе берется значение переменной a.

«?.» Safe navigation
Используется для избежания ошибки NullPointerException

Вернет null, если если в user содержится null вместо того, чтобы бросать NullPointerException.

«*.» Spread operator
Применяет указанный метод для всех элементов какой-либо коллекции. Эквивалент следующему:

Так же монжо использовать для составления списков и словарей:

В Groovy можно перегружать операторы +, -, * и т.п. Для этого нужно определить соотвествующий метод для класса. Например, для перегрузки оператора ++ нужно переопределить метод next():

Оператор «==» уже перегружен для всех объектов — и вызывает метод «isEquals()». Полный список методов, которые нужно переопределить для перегрузки операторов, доступен здесь: http://groovy.codehaus.org/Operator+Overloading.

SQL запросы обрабатываются очень просто:

В groovy существуют билдеры, которые можно использовать для генерации XML. Для генерации создается экземпляр объекта MarkupBuilder, на котором вызываются псевдо-методы — название этого метода и переданные параметры будет использоваться для генерации тега:

В качестве параметра конструктору MarkupBuilder можно передавать любой PrintWriter:

Парсинг XML так же очень простой:

Groovlets

С помощью класса GroovyServlet возможно запускать скрипты на Groovy как сервлеты.
В первую очередь, для этого нужно добавить несколько строчек в web.xml:

Теперь все запросы для файлов .groovy будут обрабатываться классом GroovyServlet.
В этих скриптах уже доступны для использования следующие переменные:

— request & response
— context, application, session
— out (= response.getWriter())
— sout (= response.getOutputStream())
— html (= new MarkupBuilder(out))

Отдаст браузеру сгенерированную html-страницу.

Список используемых источников:

Читают сейчас

Редакторский дайджест

Присылаем лучшие статьи раз в месяц

Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.

Похожие публикации

Как написать (игрушечную) JVM

Варим байткод на кухне JVM

Groovy vs Java для JavaFX

Заказы

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Минуточку внимания

Комментарии 50

есть модуль goovy под ibm websphere portal, в принципе, оно работает, но…

штука глючная, изменения в скриптах отслеживает с трудом, бывает что скомпилированый скрипт «залипает», и надо производить танцы с бубнами типа физического перезапуска кластера и смены даты файлов скриптов, чтобы оно их перекомпилило
вроде в новой версии обещают что починили, но ставить эксперименты на боевой системе не хочется

штука эта от сторонней компании, фриварная и без обязательств, соответственно ibm ее не суппортит, и если что вдруг легло, то типа разбирайтесь сами

в общем, пока в корпоративный сегмент им рано, вот лет через 5, как повзрослеют…

Я писал в блоге об этом некоторое время назад — дам поэтому ссылку mantonov.blogspot.com/2011/04/groovy-c-java-production-1.html

Мы внедряем Groovy достаточно давно в разных частях достаточно крупного (в общей сложности более 3 млн строк Java кода) и достаточно старого проекта на Java, наталкиваемся на некоторые неожиданные сложности и нестыковки, но пока вроде бы получается находить решения.

Groovy разрабатывается компанией SpringSource(подразделение VMWare) — команда, что разрабатывает Spring, Apache Tomcat, Apache HTTPD, RabbitMQ, Redis, AspectJ и многие другие опенсорсные(и не только) проекты. Groovy-related вещами занимается около 8 человек. Success stories можно почитать на сайте SS.

Из популярных продуктов — Grails, на Dice.com вакансий по нему больше чем по Tapestry, Wicket, примерно одинаковое с Django & Zend. Очень активный мейл-лист.

Groovy также популярен как DSL: Gradle & Maven 3 (Build Tools), Geb (Web testing via Selenium Webdriver), Griffon (Java GUI), Spock (BDD/TDD), GPars (Parallelism, Concurrency, Actors..), Play! framework(as a Template Engine). Есть плагины для анализа кода — CodeNarc, опциональное статическое типизирование Groovy++.

Есть поддержка IDE: SpringSource Tool Suite(бесплатный набор плагинов к Eclipse) & IntelliJ IDEA(Groovy есть даже в бесплатной Community версии), Netbeans + текстовые редакторы.

Вообщем вполне себе здоровое сообщество — не забываем, что вы можете использовать без проблем Java библиотеки, наследывать Java классы и наоборот (JavaClass extends GroovyClass).

Можно создать классы на Groovy с аннотациями из hibernate, а затем использовать эти домены в java коде? Нет каких-то подводных камней?

Для Groovy видел кучу всяких библиотек и фреймворков — есть там что-нибудь интересного, чтобы взяться за голову и сказать — как же я раньше без этого жил? 🙂

Насчет hibernate не пробовал, но в EJB проектах можно использовать groovy и аннотации — ссылка. Думаю, все будет хорошо работать. Так же при смешивании java и groovy классов лучше придерживаться такого правила: интерфесы писать на java, а реализацию — на groovy. Тогда эти интерфейсы затем можно использовать где угодно, хоть в java, хоть в groovy.

Насчет взяться за голову — да, есть такое. После python в джаве иногда становится очень грустно… И на помощь приходит groovy.

И код выразителен. Вот, например, сравните:
Groovy:

Какой вариант вам больше нравится? 🙂

В java можно и так:

query.setAttributes(new HashMap( <<
put(«column», «subject»);
put(«table», «emails»);
>>));

Но синт. сахар меня не возбуждает уже, вышел из этого возраста 🙂 Для меня важнее наличие клёвых библиотек и фреймворков, которые упрощают и ускоряют разработку. Например, в Tapestry 5 и не нужно так делать с параметрами для шаблона. Т.е. не нужно вот этого кода вообще:

groovy+какой-то веб-фреймворк:
def query = group.getInstanceOf(«/index»);
query.setAttributes([«column»: «subject», «table»: «emails»])

Ну да, я поэтоу и думаю не уходить в крайности, а использовать плюсы groovy в java.

Tapestry 5 рекомендую, если делаете что-то кастомное и оригинальное. Если же нужно сделать, что-то шаблонное, типа блога за 15 минут, то со сторонними компонентами в Tapestry 5 сейчас не очень (значительно хуже, чем с плагинами в Grails).

Читайте также:  Эта пункт между windows
Оцените статью