Как стать автором
Поиск
Написать публикацию
Обновить

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

Сам активно использую груви в качестве основного скриптового языка — Grape позволяет по-быстрому и страничку скачать/отпарсить, и данные в базу залить, и по файловой системе пройтись.

Правда, я использую обычные скрипты #!/usr/bin/groovy и у меня всё работает. В чем преимущество запуска через java -jar?
Да, вы правы про скрипты и удобство.
Но похоже что ответ содержиться в вашем вопросе — для этого нужен установленный груви, доступный в env path и java.
Преимущество в подходе из статьи: нужна только установленная в системе java и файл groovy-grape-aether-2.4.5.jar
Как лютый хак при
Caused by: java.lang.ClassNotFoundException: org.apache.ivy.Ivy
можно предварительно натравливать URLClassLoader на ivy jar-ник в maven central, а затем Grape.grab.
maven central

Вы имели в виду кеш maven в локальной файловой системе?
Для этого хака Ivy должен был запрашиваться каким-либо приложением раньше чем вам он понадобиться, чтобы оказаться в этом кеше
Нет, натравив прямо на URL джарника в maven central
Интересный хак!)
Можете пожалуйста готовый пример предложенного решения привести, чтобы запустить то же самое с «чистым» groovy?
3 Мб оверхеда, да ещё и выковырянных из другого проекта. Вы же, как я понял, всё равно используете maven-указаение зависимостей и его артефакты. Ivy (https://mvnrepository.com/artifact/org.apache.ivy/ivy/2.4.0) занимает всего 900Кб и готов к использованию. В том числе как зависимость проекта, в котором вы собираете единый артефакт.

На сколько я понимаю, основной смысл использование в скриптах, эта же тема развивается в комментариях, что сложных случаев каких-то зависимостей не нужно. Так зачем тогда на столько усложнять и увеличивать объём артефакта более чем в 3 раза?
Добрый вечер! Первая аналогия что пришла в голову в связи с вашим аргументом про разницу в размере библиотеки в 3 раза: «Зачем играть в Quake4 когда Doom2 в Nдцать раз меньше и его можно записать на флоппи-диски!?». Странный критерий оценки ПО, когда различается не только объем, но качество и функциональность.

Если вам интересно, посмотрите на пример AlarmSystem.groovy. Там используется не только разрешение зависимостей с помощью aether, но и динамическая загрузка класса с помощью MavenClassLoader из этой же библиотеки. Функциональные возможности сборки Groovy не ограничиваются этим…
НЛО прилетело и опубликовало эту надпись здесь
Это зависит от конечной цели. Не удобно забивать гвозди отверткой…

Если нужен полноценный проект, то Grape возможно не лучший инстурмент для этого. И конечно лучше это делать на gradle. Вы правильно заметили количество действий, что необходимо сделать и еще необходимо написать скрипт сборки. Я не призываю на Grape делать то что делает система сборки проекта)
Если же нужно написать компактный скрипт или решать задачи, похожие на те задачи которые решает AspectJ-Scripting, то Grape — отличный инструмент
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации