Хобрук: Ваш путь к мастерству в программировании

Как добиться независимого управления версиями нескольких модулей с помощью плагина sbt-release

У меня есть два подпроекта и проект верхнего уровня, который их согласует. Я могу успешно выпустить их все, но изменяется только версия проекта верхнего уровня, а подпроекты выпускаются с версией, определенной в их каталоге, которая, к сожалению, не изменяется во время выпуска.

Root
|
 -SubA
|   |- version.sbt -> version in SubA := "0.0.1-SNAPSHOT"
|
 -SubB
|   |- version.sbt -> version in SubB := "0.0.4-SNAPSHOT"
|- version.sbt -> version in ThisBuild := "0.1.0-SNAPSHOT"

После релиза я хотел бы иметь:

  • Root выпущен как 0.1.0 (хотя мне вообще плевать на рут)
  • SubA выпущен как 0.0.1
  • SubB выпущен как 0.0.4

и каждая версия инкрементируется например в SubA/version.sbt -> 0.0.2-SNAPSHOT

Как это сделать с помощью плагинов sbt 0.13 и sbt-release?

09.09.2014

Ответы:


1

Вам нужно переопределить расположение файла version.sbt по умолчанию в каждом build.sbt вашего подмодуля:

import ReleaseKeys._

organization := "com.organization"

name := "moduleName"

version := (version in ThisBuild).value

scalaVersion := "2.11.6"

releaseSettings

versionFile := file(name.value + "/version.sbt")

По умолчанию файл version.sbt находится в папке ROOT с помощью sbt-release.

09.04.2015
  • Почему не versionFile := baseDirectory.value / "version.sbt"? 05.09.2017

  • 2

    Создайте отдельный класс/объект и определите commonSettings lazy val и установите там version := {your_docker_version) (вы можете переопределить это значение по-разному, например, через System.property и т. д.
    Затем используйте эти общие настройки во всех ваших модулях.

    12.07.2018
    Новые материалы

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

    «Очень простой» эволюционный подход к обучению с подкреплением
    В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

    ВЫ РЕГРЕСС ЭТО?
    Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

    Не зря же это называют интеллектом
    Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

    LeetCode Проблема 41. Первый пропущенный положительный результат
    LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..