Рубрика «gradle» - 4

Multi-release JARs — Плохо или хорошо? - 1

От переводчика: мы активно работаем над переводом платформы на рельсы Java 11 и думаем над тем, как эффективно разрабатывать Java библиотеки (такие как YARG) с учётом особенностей Java 8 / 11 так, чтобы не пришлось делать отдельные ветки и релизы. Одно из возможных решений — multi-release JAR, но и тут не всё гладко.

Java 9 включает новую опцию Java-рантайма под названием multi-release JARs. Это, возможно, одно из самых противоречивых нововведений в платформе. TL;DR: мы считаем это кривым решением серьезной проблемы. В этом посте мы объясним, почему мы так думаем, а также расскажем, как вам собрать такой JAR, если вам сильно хочется.

Multi-release JARs, или MR JARs, — это новая функция платформы Java, появившаяся в JDK 9. Здесь мы подробно расскажем о значительных рисках, связанных с использованием этой технологии, и о том, как можно создавать multi-release JARs с помощью Gradle, если вы ещё хотите.

По сути, multi-release JAR — это Java-архив, включающий несколько вариантов одного класса для работы с разными версиями среды исполнения. Например, если вы работаете в JDK 8, среда Java будет использовать версию класса для JDK 8, а если в Java 9, используется версия для Java 9. Аналогично, если версия создана для будущего выпуска Java 10, рантайм использует эту версию вместо версии для Java 9 или версии по умолчанию (Java 8).

Под катом разбираемся в устройстве нового формата JAR и выясняем нужно ли это всё.

Читать полностью »

Droidcon London. Как это было - 1

На днях в Лондоне прошла конференция droidcon. Её не обошли стороной такие модные темы, как Redux, MVI, оптимизация скорости сборки и возможности Gradle. Открывал мероприятие доклад Чета Хаазе (Chet Haase) и Ромена Ги (Romain Guy) про фрагментацию памяти и отличия Garbage Collector между версиями Android, а Джейк Уортон (Jake Wharton) выступил с презентацией про Dagger.

В этом обзоре я хочу поделиться своими впечатлениями от конференции и деталями этих докладов.Читать полностью »

Привет!

Не знаем, насколько жарко у вас за окном, но у нас в JetBrains эти недели точно жара — релизная. Одну за другой мы опубликовали обновленные версии 2018.2 почти всех наших инструментов на базе платформы IntelliJ: WebStorm, IntelliJ IDEA, PyCharm, DataGrip, GoLand, PhpStorm, RubyMine и CLion.

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

  1. Clangd как основа для нового экспериментального движка для разбора кода на C++.
  2. Улучшения производительности IDE за счет новых архитектурных решений.
  3. Новые проектные модели, поддерживаемые в CLion.

А также поддержка Google Sanitizers, возможность пересборки отдельного файла и многое другое!

image

Ниже мы поговорим про улучшения и нововведения подробно, а самые нетерпеливые могут прямо сейчас скачать бесплатную 30-дневную версию с нашего сайта и попробовать новые возможности на своем проекте или специально подготовленном демо-проекте с GitHub.
Читать полностью »

Firebase Performance Monitor — полезный инструмент, позволяющий сделать Андроид приложение лучше. Но при его подключении время сборки нашего проекта сразу увеличилось на 20-30 секунд, что, согласитесь, не мало.

Мы такие не одни, и я решил опубликовать решение, найденное на Медиуме. Надеюсь, оно поможет и вам сэкономить драгоценное время сборки проекта. Читать полностью »

image

При разработке Android приложений наступают моменты, когда те или иные части кода можно вынести в виде библиотек, чтобы можно было переиспользовать их в разных проектах:

  • Модули в проекте, которые часто встречаются. Например, кастомные View
  • Когда существующий API неудобный или не позволяет сделать то, что задумали — создаем расширение для этого API

Чаще всего все проблемы были решены задолго до нас, но в нашем случае нужно было вынести часть слоя бизнес-логики и фактически весь слой, отвечающий за данные в 3 наших основных продукта объединенной компании Колёса Крыша Маркет. Все наши продукты – классифайды про автомобили, недвижимость и прочие товары. Поэтому нами, разработчиками, было решили написать одно решение для всех продуктов компании. К тому же, это облегчило нашу работу.

Читать полностью »

TLTD

  1. удалил jar из сборки проекта
  2. заменил его таском, который быстрее в 7 раз

Ускоряем время сборки и доставки java web приложения - 1

Детали и результат под катом.

Читать полностью »

Интересная заметка от Madis Pink в блоге ZeroTurnaround Rebel Labs. Если кто-то вас разбудит посреди ночи и спросит: “какую фичу в Gradle должен знать каждый?” — с уверенностью отвечай, что это buildSrc. Это особый магический Gradle-проект внутри твоего репозитория, доступный всем файлам build.gradle в виде библиотеки .

Описанный далее подход позволяет писать код на удобном тебе JVM-языке, и результат использовать прямо в своих сборочных скриптах. Как бонус, можно покрыть юнит-тестами особо хитрые моменты в этих скриптах. Добро пожаловать под кат!

Читать полностью »

Что такое AStA? Это акроним от «Android Studio on Android». Это метод, позволяющий собирать проекты Android Studio на Android устройстве с помощью chroot/Debian, JDK, Android SDK и Gradle.
Зачем это вообще нужно? Да мало ли, зачем… Бывает, например, хочется проверить какую-то идею, а декстопа под рукой нет. В общем, пусть на вопрос «зачем» каждый ответит для себя сам.
Какие существуют альтернативы? Из существующих решений мне известно только AIDE, но у него есть свои минусы. Во-первых, постоянно выскакивает окошко с предложением проапгрейдить версию за 600 рублей, а если этого не сделать, то нельзя сохранять проекты, состоящие из более чем 5 файлов. Во-вторых, AIDE не поддерживает сборку проектов Android Studio, состоящих из более, чем одного модуля.

Читать полностью »

Чем популярнее ваше приложение, тем длиннее список устройств, на которых его запускают. В какой-то момент это становится проблемой: некоторые баги загадочным образом воспроизводятся только на конкретной модели, и приходится тестировать продукт на всё большем числе девайсов.

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

Читать полностью »

Введение

Image

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

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

Всё это было реализовано в виде прототипа — были пользователи, один урок и одна задача для него, возможность отправить код, который компилировался и исполнялся. Кое-какой фронтенд, но в статье о нём речи не будет. Технологии — Spring Boot, Spring Data, Gradle.

В статье будет реализован такой же прототип, но уже на микросервисах. Реализация будет наиболее простым путём (точнее наиболее простым, из известных мне). Реализация будет доступна любому, кто знаком со Spring.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js