--- aliases: tags: - maturity/🌱 date: 2023-10-21 zero-link: - "[[../../meta/zero/00 Gradle|00 Gradle]]" parents: linked: --- Π§Ρ‚ΠΎΠ±Ρ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π»ΠΈΠ·Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Gradle Plugin: [GitHub - researchgate/gradle-release](https://github.com/researchgate/gradle-release) Плагин выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия: - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ зафиксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ SNAPSHOT зависимостСй Π² Ρ„Π°ΠΉΠ»Π΅ `gradle.properties` - ΠœΠ΅Π½ΡΠ΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ сСрвиса со SNAPSHOT Π½Π° Ρ€Π΅Π»ΠΈΠ·Π½ΡƒΡŽ. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² CI. - Π”Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚. - ΠœΠ΅Π½ΡΠ΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ сСрвиса с Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠΉ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ SNAPSHOT. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. - АвтоматичСски ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ измСнСния, Ссли ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ называСтся `origin`. МоТно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ названия Π²Π΅Ρ‚ΠΎΠΊ. Настройка ΠΏΠ»Π°Π³ΠΈΠ½Π° Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ `build.gradle`: ```gradle buildscript { repositories { gradlePluginPortal() mavenCentral() } dependencies { classpath 'org.kordamp.gradle:jandex-gradle-plugin:1.0.0' } } apply plugin: "net.researchgate.release" release { createReleaseTag.enabled = false pushReleaseVersionBranch = 'rc' preTagCommitMessage = 'Candidate release version commit: ' newVersionCommitMessage = 'New develop version commit: ' git { requireBranch.set('developer') } } ``` - `createReleaseTag.enabled = false` - ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ проставлСниС Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° - `pushReleaseVersionBranch = 'rc'` - Π·Π°ΠΏΡƒΡˆΠΈΡ‚ Ρ€Π΅Π»ΠΈΠ· Π² Π²Π΅Ρ‚ΠΊΡƒ rc - `preTagCommitMessage` ΠΈ `newVersionCommitMessage` Π·Π°Π΄Π°Π΅Ρ‚ тСкст Π² Ρ€Π΅Π»ΠΈΠ·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ… - `requireBranch` позволят Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅Π»ΠΈΠ·Ρ‹. МоТно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° вСрсии для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ мСняСтся ΠΏΠ°Ρ‚Ρ‡ вСрсия. Π’ΠΎΡ‚ эта конфигурация ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ ΠΌΠΈΠ½ΠΎΡ€Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. ``` versionPatterns = [ /(\d+)\.\d+([^\d]*$)/: { Matcher m, Project p -> m.replaceAll("${(m[0][1] as int) + 1}.0${m[0][3] ? m[0][3] : ""}") } ] ``` Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ тСкста для сообщСния Π² Ρ‚Π΅Π³Π΅: ``` release.tagCommitMessage = project.findProperty('release.tagCommitMessage') ``` Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π°: ```bash gradle relase ``` ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Git ![](Pasted%20image%2020231021121612.png) *** ## ΠœΠ΅Ρ‚Π° информация **ΠžΠ±Π»Π°ΡΡ‚ΡŒ**:: [[../../meta/zero/00 Gradle|00 Gradle]] **Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ**:: **Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ**:: **Автор**:: **Π‘ΠΎΠ·Π΄Π°Π½Π°**:: [[2023-10-21]] ### Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ - [GitHub - researchgate/gradle-release](https://github.com/researchgate/gradle-release) - [Автоматизация Ρ€ΡƒΡ‚ΠΈΠ½Ρ‹ ΠΏΡ€ΠΈ выпускС Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² с Maven](https://struchkov.dev/blog/ru/release-releases-with-maven/) ### Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ