2017-01-06 6 views
0

В настоящее время мы осуществляем миграцию нашего проекта с maven на gradle. Наша установка выглядит следующим образом:Управление версиями подпроектов Gradle

  • Родитель П проект
    • подпроект 1
    • подпроект 2 (компиляция зависит 1)
    • Субпроекта 3 (компилировать зависит от 2 и 1)

Все эти подпроекты maven независимо от версии

С Maven мы используем плагин версии, который гарантирует, что мы устанавливаем (используя плагин) версию, например, подпроект 1, новая версия распространяется на все поддерево (и соответственно меняются соответствующие зависимости в 2 и 3).

Я искал документы от gradle release plugin Бутон не смог найти упоминания об этой функциональности. Поддерживает ли он это, или есть ли какой-либо другой плагин, который делает?

Второй вопрос, так как мы находимся в середине миграции maven-gradle, можно ли как-то комбинировать плагин версии maven с любым таким плагином gradle? (Имейте 1 версию в maven, 2 и 3 в градиенте и все еще достигайте поведения). Я думаю, что не, а просто спрашивает, не нашел ли кто-нибудь решение :-), поэтому нам не нужно делать maven -> gradle за один большой взрыв.

Заранее благодарен!

ответ

2

Я хотел бы сохранить свою версию в отдельном текстовом файле

root/build.gradle

def versionTxt = file('version.txt').text.trim() 
allprojects { 
    version = versionTxt 
} 

Тогда вы можете просто настроить version.txt, чтобы увеличить версию ... это разделение является большим, например, вы можете сделать историю файлов на version.txt и увидеть изменения версии, изолированные от изменений градиента.

Single Пример проекта here

+0

Первоначально я идея звучала немного дикий для меня (чтобы иметь версии, разделенные в отдельном файле исходного проекта). Но, подумав больше, это разделение может быть действительно большим. Я, скорее всего, буду использовать родительский файл свойств вместо txt, но основная идея останется :-). – malejpavouk

+0

Мне нравится отдельный файл, поэтому я могу обновить его из командной строки. Релиз может быть чем-то вроде 'echo 1.1> version.txt && ./gradlew release && echo 1.2-SNAPSHOT> version.txt' –