Pull to refresh
  • by relevance
  • by date
  • by rating

Gradle: Better Way To Build

Java *Gradle *
Ни один проект с использованием платформы Java (и не только) не обходится без инструментов сборки (если только это не «Hello, world!»). Рано или поздно, но собирать дистрибутив руками надоедает. Да и компилировать из консоли было бы неплохо, если в проекте используется несколько разных IDE. А перед сборкой дистрибутива было бы здорово проставить номер версии в его имени. И unit тесты прогнать — не зря же Kent Beck книжки пишет. А там и Continues Integration на горизонте маячит. И здорово было бы научить CI сервер это все делать самостоятельно. Одним словом, есть уйма задач.

Раз есть задачи, то есть и решения. Думаю, большинство разработчиков хоть раз, но сталкивались с Ant. Очень многие используют Maven. Есть другие, не такие распространённые инструменты: GAnt, Buildr, и др. Каждый из них обладает набором своих плюсов и минусов, но сегодня я хочу представить вам кое-что новенькое. Gradle.
Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Views 109K
Comments 14

Gradle: Tasks Are Code

Java *Gradle *
В предыдущем топике я постарался вкратце рассказать, что же такое Gradle и на каких идеях он построен. Также была освещена концепция Source Sets и функциональность, с ней связанная.

Теперь я хотел бы рассказать о том, чем Gradle зацепил лично меня. Речь пойдёт о способах работы с задачами. Задача в Gradle — близкий аналог Ant Target. И, чтобы не путаться в терминах, под задачей (или task) далее по тексту всегда будет подразумеваться Gradle Task. Если речь будет идти о сущности из Ant, то это будет указано явно: Ant task.

Так вот, задачи в Gradle создаются при помощи специального dsl (domain specific language) на основе Groovy. И возможности, которые этот dsl предоставлет, на мой взгляд, почти безграничны в сравнении с ant или maven.

Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Views 46K
Comments 48

Ciklum Java Saturday (15.10) — неформальная мини-конференция Java разработчиков В Минске

Ciklum corporate blog
В наших офисах как по всей Украине, так и в Беларуси постоянно проходят Ciklum Saturdays, собирающие разработчиков по различным технологиям.

15 октября мы, совместно с компанией Exigen Services, приглашаем разработчиков в наш минский офис на Ciklum Saturday, посвященный разработке на Java . Этот Ciklum Субботник, как и предыдущие, пройдет в формате неформальной мини-конференции.

Интересные подробности под хабра-катом
Total votes 1: ↑1 and ↓0 +1
Views 1.1K
Comments 2

«Разбор полетов» — episode 4 — Spring-аем глаголы

Lumber room
Я и коллега aib представляем вашему вниманию очередной четвертый выпуск популярного в узких кругах, разговорного IT-тематического подкаста «Разбор Полетов».
В этом выпуске:
Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Views 602
Comments 12

Обновление IntelliJ IDEA 11.1

Java *
image

Вчера на сайте JetBrains стала доступна для скачивания новая версия среды разработки на Java – IntelliJ IDEA 11.1.

Как всегда IntelliJ IDEA доступна в двух версиях: Ultimate – полная платная версия, а также Community Edition – бесплатная Open-source версия. Владельцы лицензии IntelliJ IDEA 11 Ultimate имеют возможность бесплатного обновления до 11.1.

Попробуем ознакомиться с тем, что нас ждет в новой версии продукта.
Читать дальше →
Total votes 49: ↑42 and ↓7 +35
Views 14K
Comments 74

Пишем простейший REST web-сервис на Scala

Java *Scala *
У меня есть сайт, написанный на Node.js, и иногда там требуется сделать что-то, для чего Node.js не предназначен: например, произвести какие-нибудь математические вычисления.

В этом примере мы будем вычислять «хеш» пароля.
Читать дальше →
Total votes 14: ↑9 and ↓5 +4
Views 16K
Comments 27

Как запускать DBDeploy в Gradle

Java *SQL *Gradle *
Tutorial

В данной заметке я покажу, как запускать DBDeploy из скрипта Gradle.


О чём это вообще?


Возможно, вы уже слышали о версионированной миграции структуры баз данных. Об этом писали на хабре. DBDeploy — один из самых простых и известных инструментов, позволяющий легко установить все последние изменения в базе данных на любом инстансе и любой девелоперской машине. А Gradle — модный ныне инструмент для сборки проекта (как Ant и Maven, только лучше). О нём тоже уже писали.



И в чём вопрос?


Вопрос в том, как запускать DBDeploy из скрипта Gradle? У DBDeploy есть таски для Ant и плагин для Maven, но пока ещё нет плагина для DBdeploy (точнее, он в зачаточном состоянии). Немного потыркавшись, я пришёл к выводу, что самый простой способ — это использовать тот самый Ant таск DBDeploy из скрипта Gradle (здесь описано, как из gradle-скрипта использовать любые Ant-таски). Рассмотрим пример.



Пример проекта и билд-скрипт для запуска SQL-скриптов
Total votes 12: ↑12 and ↓0 +12
Views 5.5K
Comments 7

Подробно о задачах Gradle

Java *Groovy & Grails *Development for Android *
Tutorial


Перевод второй главы свободно распространяемой книги Building and Testing with Gradle

Задача (task) является основным компонентом процесса сборки в файле билда Gradle. Задачи представляют собой именованные наборы инструкций билда, которые Gradle запускает выполняя сборку приложения. При сравнении с другими билд-системами, задачи могут показаться знакомой абстракцией. Однако Gradle предоставляет более развитую модель, в отличие от той, которая вам уже может быть знакома. По сравнению с традиционными возможностями объявления операций билда, связанных зависимостями, задачи Gradle являются полнофункциональными объектами, которыми вы при желании можете управлять программно.

Рассмотрим какими способами можно определить задачу, два ключевых подхода к определению задач и программный интерфейс, который мы можем использовать для гибкой настройки.
Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Views 102K
Comments 4

Сборка flex/as3 проекта с использованием gradle

Adobe Flash Action Script *Apache Flex *Gradle *
После не самого удачного, на мой взгляд, эксперимента по сборке flex с использованием maven (подробности тут), решил попробовать gradle, про который пишут, что он взял лучшее от ant и maven и это следующий шаг в развитии. Решил провести эксперимент по такому плану:
  • flex compile (Path to FlexSDK/maven dependency)
  • as3 compile
  • flex unit run (dependency)
  • fla compile as static resource
  • reliase compress
  • code quality (FlexPMD)
  • multy module project

Кому интересно, что из этого получилось, прошу под кат, потому как текста достаточно много. Он писался прямо по ходу эксперимента, если читать совсем лень, то в конце есть ссылка на тестовый проект.
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Views 9.6K
Comments 7

Разрешение конфликтов в транзитивных зависимостях — Хороший, Плохой, Злой

JUG Ru Group corporate blog Java *

Вместо предисловия


В ближайшую субботу мы с EvgenyBorisov будем выступать в Питере на JUG.ru. Будет много веселого трэша и интересной инфы (иногда не разберешь, где проходит граница), и одно из моих выступлений будет посвящено WTF-нутости модульной разработки программ. Я расскажу несколько ужастиков, один из которых будет о том, как все пытаются быстро, гибко и корректно описать зависимости в проекте, и что из этого обычно получается. Интересно? Тогда добро пожаловать в ад!


Скорее, конечно, «Хороший, Удобный и WTF-ный».
Погрузиться в конфликт...
Total votes 52: ↑46 and ↓6 +40
Views 33K
Comments 83

Gradle и решение задач автоматизации

Java *Gradle *
Sandbox
Всем привет, сегодня я хотел бы рассказать вам о моём опыте работы с Gradle, не просто переписать мануал (хотя он отлично написан), но рассказать с какими реальными проблемами я столкнулся и как побеждал их, а также показать какие возможности предоставляет нам Gradle. Тема очень обширная поэтому, к сожалению я не смогу рассмотреть многие аспекты подробно и последовательно, надеюсь что читатели уже немного знакомы с Gradle и смогут понять суть описываемых решений.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Views 33K
Comments 6

Использование NDK в Android Studio

Development for Android *
Sandbox
Tutorial
В настоящее время среди Android-девелоперов большую популярность имеет среда разработки Android Studio, основанная на IntelliJ IDEA от JetBrains. Однако, при использовании данной IDE, могут возникнуть проблемы при разработке приложений, использующих нативный код, так как Android NDK рассчитан преимущественно на использование IDE Eclipse и ADT.

Цель данной статьи — подробное описание процесса создания Android-приложения, использующего NDK в Android Studio, в частности — предложение достаточно простой и эффективной конфигурации gradle (системы сборки пакетов, используемая в Android Studio), гарантирующей включение нативных библиотек в APK-файл. Также статья включает краткую инструкцию работы с NDK в IDE Eclipse и введение в нативную разработку, достаточное для написания первого приложения.
Читать дальше →
Total votes 37: ↑36 and ↓1 +35
Views 66K
Comments 8

Пишем свой Gradle плагин для AnnotatedSql

Development for Android *

Вступление



Привет, коллеги. Давно я не писал ничего на Хабр. Вот, решил исправить это досадное недоразумение.

Не так давно я сменил место работы, и проект, над которым я теперь работаю, использует для сборки Gradle. Более того, проект достаточно развесистый и сложный, и Gradle скрипт в нем весьма непростой. Поэтому я решил, что надо подучить Gradle. Как один из шагов обучения я решил написать свой собственный плагин. Плагин посвящен замечательной библиотеке annotated-sql, созданной моим хорошим товарищем Геннадием hamsterksu. Я использую эту библиотеку в персональных проектах, поэтому мне нужен удобный способ прикреплять и конфигурировать ее к ним. Библиотека использует процессоры аннотаций, поэтому цель плагина — подружить эти процессоры и gradle сборку.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 7K
Comments 6

Continuous Integration для Android с использованием Jenkins + Gradle

Development for Android *
Sandbox
Хочу поделится своими наработками по автоматической сборке Android приложения. В этой статье я приведу пример сборки для двух типов приложений, первый — простое приложение, содержащее в отдельной папке unit-тесты, второй — приложение использующее проект-библиотеку (android library project).

В конечном итоге мы получим отчет о выполненных тестах а так же подписанный apk файл, доступный для скачивания из артефактов сборки Jenkins.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 24K
Comments 4

Интеграция Android Studio, Gradle и NDK

Intel corporate blog Programming *Development for Android *
Translation
В свете недавних изменений (начиная с релиза 0.7.3 от 27 декабря 2013) новая система сборки под Android становится очень интересной в том числе и для тех, кто использует NDK. Теперь стало действительно просто интегрировать нативные библиотеки в вашу сборку и генерировать APK для различных архитектур, корректно обращаясь с кодами версий.
Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Views 45K
Comments 5

Ошибка gradle при создании проекта в Android Studio

Development for Android *Gradle *
Sandbox
Всем привет!

Столкнулся с проблемой при создании нового проекта в среде Android Studio (на момент написание статьи версия 0.3.2).
Операционка Win 7x64, Android SDK v 22.2.1.
Проект никак не хотел создаваться вылетая с ошибкой: Could not GET 'http://repo1.maven.org/maven2/com/android/tools/build/gradle/'. Received status code 407 from server: Proxy Authentication Required

Сразу хочу сказать, что
Читать дальше →
Total votes 22: ↑7 and ↓15 -8
Views 11K
Comments 6

Создание standalone библиотеки под android

Java *Development for Android *
Sandbox
В этой статье я расскажу как создать библиотеку, которая использует другие библиотеки и при этом уместить всё в одном jar.

Допустим мы пишем библиотеку, она использует другие библиотеки и, в частности, для примера, support library. Если бы мы использовали maven, то в pom файле просто прописали зависимости и не парились. Но что если нашу библиотеку будут использовать люди, которые не пользуются системами сборок или пользуются ant' ом?

Мы можем положить зависимости рядом с нашим jar. Но тогда неизбежны конфликты библиотек разных версий, например, если мы используем одну версию support library, а в самом приложении другая. Тогда придется руками одну из них удалять.

Можно пойти другим путем, вспомним что jar это обычный zip файл. Мы распакуем все зависимости, получим байт-код в виде .class файлов, далее компилируем код нашей библиотеки, кладем все .class файлы в одно место и собираем из них jar. Но если в приложении используются те же библиотеки что и у нас, то получим ошибку что в проекте два одинаковых класса.
Читать дальше →
Total votes 16: ↑12 and ↓4 +8
Views 14K
Comments 8

Состоялся релиз библиотеки libGDX 1.0

Open source *Game development *Development for Android *
Библиотека libGDX известна почти каждому разработчику Android-приложений. С её помощью добавляются текстуры, проигрывается звук, вызывается вибрация и т.д. «Все думали, что этот день никогда не наступит, но он наступил. Официально вышла версия libGDX 1.0!», — сообщается в официальном блоге Badlogic Games, маленькой австрийской компании, которая с 2009 года ведёт разработку проекта.

Среди самых важных изменений в версии 1.0 — новый интерфейс для сборки проекта на основе Gradle. Теперь любой проект можно скомпилировать из командной строки или из Eclipse, Intellij IDEA и т.д. Больше никаких jar’ов в репозитории!
Читать дальше →
Total votes 32: ↑27 and ↓5 +22
Views 7.9K
Comments 5

Развертываем приложение на Heroku c помощью Gradle

Java *Groovy & Grails *Gradle *
Tutorial
В продолжение предыдущей статьи про развертывание Ratpack приложения на Heroku, сегодня я расскажу про использования плагина Gradle. Это был трудный опыт по развертыванию простого Ratpack приложения на Heroku PaaS. Мы рылись в хитросплетениях buildpack's для развертывания на Heroku.Хорошие новости в том, что это бельше не обязательно.
В этой статье я покажу более простой способ развертывания. В этом методе не необходимости явно использовать Heroku Toolbelt и custom'ые buildpack's. Так же больше не нужно иметь Ruby, RVM, или множество других связанных с Ruby технологий, которые не нужны Java/Groovy разработчикам, им даже знать об этот нет необходимости.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Views 6.5K
Comments 0