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

Maven – размышления после двух лет использования

Lumber room
В течение последних двух лет я использовал Maven как инструмент для сборки проектов. В результате я остался весьма недоволен Мавеном, недоволен настолько, что всерьез обдумываю перевод нынешнего проекта на Ant.

Прежде, чем обсуждать причины моего недовольства, нужно сказать пару слов о Мавене. Я не буду его подробно описывать, просто кратко изложу его основные особенности.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views1.3K
Comments 16

Управление зависмостями в Android-проектах с использованием Ivy

Development for Android
Если ваш Android-проект компилируется и собирается с помощью Maven или SBT (а может, и чем-нибудь другим, отличным от Ant), то вы уже используете механизм управления зависимостями, предоставляемый, что называется, «из коробки». Однако, если вы используете Ant, либо просто собираете приложение в Eclipse с помощью ADT-плагина, то такой функциональности у вас нет, и каталог lib в корне проекта наполняется вручную, а желания или возможности переходить на использование Maven'а конечно же нет. Тогда, есть ли возможность не складировать jar-файлы вручную, не держать их, бинарных, в VCS, не добавлять их самим в «Build Path» в настройках проекта? Конечно есть, какие вопросы!

Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Views4.9K
Comments 5

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

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

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

Ant + Ivy VS Maven: давайте жить дружно

Website developmentJava
Recovery mode
В этой статье я не буду развивать очередной холивар на тему, что круче. Скорее, будет проведен сравнительный обзор, опираясь на точку зрения самого Apache* и личного опыта нашей команды Build Factory. Обращаю внимание, что речь идет о большом Enterprise. Это означает, что в учет не берутся юзкейсы, когда вчера решили — сегодня уже должно быть сделано. Зато в учет берутся очень большие размеры проекта, распределенные по всему миру команды разработчиков и прочие прелести.
Очень часто можно услышать мнение, что Ant сам по себе с Maven сравнивать нельзя. А вот Ant + Ivy уже может составить конкуренцию Maven. Отчасти это правда.

Читать дальше →
Total votes 13: ↑10 and ↓3 +7
Views22K
Comments 90

Build Systems — Local Repository

Programming
Продолжение предыдущего поста о системах сборки — BuildSystems — Intro

Maven


Система сборки, описывающая зависимости на разных уровнях и плагины для выполнения задач.
В предыдущем посте есть ссылки на другие статьи, где описывается данная система, отличительной чертой которой является четко выраженный жизненный цикл сборки:

  • validate — проверяет корректность таинформации о проекте
  • compile — компилирует исходники, фактически это обращение к плагину «compiler»;
  • test — запуск юнит-тестов
  • package — упаковка классов в заданный формат (zip, rar, jar, war, ear и т.д.)
  • integration-test -запуск интеграционных тестов после сборки
  • verify — проверяет корректность пакета и удовлетворение требованиям качества
  • install — «установка» сборки в локальный репозиторий
  • deploy — отправка пакета на заданный сервер

Локальный репозиторий Maven

Но ни в одной из этих статей не описано, что в свою очередь, для меня было очень полезным — это настройка локального репозитория.
Читать дальше →
Total votes 13: ↑8 and ↓5 +3
Views14.2K
Comments 8

Что мы читали в мае: обзоры Ivy, релиз Nest 5 и прочие полезные тексты для Angular-разработчиков

SkyengAngularReading room


Для тех, кто в длинные выходные готов не только кушать шашлык, но и читать всякие нужные тексты, я собрал десятку майских ссылок из канала разработчиков Vimbox в корпоративном Слаке Skyeng. Как и в прошлый раз, подборка сконцентрирована вокруг фреймворка Angular и будет интересна работающим с ним программистам.

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views3K
Comments 0

Исследование Ivy — нового компилятора Angular

RUVDS.comWebsite developmentAngular
Translation
«Я думаю, что компиляторы — это очень интересно», — говорит Ури Шейкед, автор материала, перевод которого мы сегодня публикуем. В прошлом году он написал статью, в которой шла речь о реверс-инжиниринге компилятора Angular и об имитации некоторых этапов процесса компиляции, помогающей понять особенности внутреннего устройства этого механизма. Надо отметить, что обычно то, о чём автор этого материала говорит как о «компиляторе», называют «движком рендеринга».

Когда Ури услышал о том, что вышла новая версия компилятора Angular, названная Ivy, он тут же захотел рассмотреть её поближе и узнать, что в ней изменилось по сравнению со старой версией. Тут, так же, как и раньше, на вход компилятора поступают шаблоны и компоненты, созданные средствами Angular, которые преобразуются в обычный код на HTML и JavaScript, понятный Chrome и другим браузерам.



Если сравнить новую версию компилятора с предыдущей, то окажется, что Ivy использует алгоритм tree-shaking. Это означает, что компилятор автоматически удаляет неиспользуемые фрагменты кода (это относится и к коду Angular), уменьшая размер бандлов проектов. Ещё одно улучшение касается того, что теперь каждый файл компилируется самостоятельно, что уменьшает время повторной компиляции. Если в двух словах, то, благодаря новому компилятору мы получаем сборки меньших размеров, ускоренную повторную компиляцию проектов более простой готовый код.

Понимание того, как работает компилятор, интересно и само по себе (по крайней мере, автор материала на это надеется), но это, кроме того, помогает лучше понять внутренние механизмы Angular. Это ведёт к совершенствованию навыков «Angular-мышления», что, в свою очередь, позволяет более эффективно использовать этот фреймворк для веб-разработки.

Кстати, знаете, почему новый компилятор назвали Ivy? Дело в том, что это слово звучит как сочетание букв «IV», прочитанное вслух, которое представляет число 4, записанное римскими цифрами. «4» — это четвёртое поколение компиляторов Angular.
Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Views8.6K
Comments 1

Семантика средств разрешения зависимостей

Конференции Олега Бунина (Онтико)Open sourceProgrammingScalaDebugging
Translation

Средство разрешения зависимостей


Средство разрешения зависимостей (далее по тексту резолвер, прим. перев.) или менеджер пакетов — это программа, определяющая консистентный набор модулей с учётом ограничений, заданных пользователем.


Ограничения обычно задаются именами модулей и номерами версий. В экосистеме JVM для модулей Maven будет ещё указано наименование организации (group id). Кроме того, ограничения могут содержать диапазоны версий, исключаемые модули, переопределения версий и т.п.


Три основных категории пакетов представлены OS-пакетами (Homebrew, Debian-пакеты, и т.п.),
модулями для конкретных языков программирования (CPAN, RubyGem, Maven, etc) и расширения, специфичные для приложения (Eclipse plugins, IntelliJ plugins, VS Code extensions).

Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views1.7K
Comments 1