Groovy & Gradle: JVM Automation and Build Engineering · Lezione

Versionamento e automazione delle release

Automatizzi il versionamento semantico, i tag Git e i flussi di release in Gradle, così ogni build viene identificata in modo riproducibile e le release sono a un solo comando di distanza.

Lezione 4 di 413 passaggi

Versionamento e automazione delle release è una lezione Groovy & Gradle: JVM Automation and Build Engineering gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Groovy & Gradle: JVM Automation and Build Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Groovy & Gradle: JVM Automation and Build Engineering include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Why Versioning Matters

A clear version on every artifact tells consumers what changed and lets you roll back safely. Manual edits to a version string are error prone, so we automate them.

Setting the Project Version

Every Gradle project has a version property used to name published artifacts.

version = "1.4.0"
group = "com.acme"

Semantic Versioning

SemVer uses MAJOR.MINOR.PATCH:

  • MAJOR: breaking changes
  • MINOR: new backward-compatible features
  • PATCH: backward-compatible fixes

SNAPSHOT vs Release

A -SNAPSHOT suffix marks an in-development build that may change. Releases drop the suffix and are immutable once published.

version = "1.5.0-SNAPSHOT"

Deriving Version from Git

Many teams compute the version from the latest Git tag so the source of truth is the repository history, not a hard-coded string.

version = providers.exec {
    commandLine("git", "describe", "--tags")
}.standardOutput.asText.get().trim()

A Release Task

Wrap the steps of a release into a single task that depends on build, tag, and publish.

tasks.register("release") {
    dependsOn("build", "publish")
}

Tagging in Git

An annotated tag records the released version in history.

git tag -a v1.5.0 -m "Release 1.5.0"
git push origin v1.5.0

Bumping the Version

After a release, bump to the next SNAPSHOT so further commits are clearly pre-release. Plugins like Axion or the release plugin automate this.

Reproducible Builds

Pin dependency versions and avoid dynamic ranges so the same source always produces the same artifact, an essential property for trustworthy releases.

implementation("com.google.guava:guava:33.0.0-jre")

Wiring into CI

In CI, run the release task only on tagged commits or a protected branch, so accidental pushes never publish.

if [ "$CI_COMMIT_TAG" ]; then gradle release; fi

Best Practices

Keep releases predictable:

  • One source of truth for the version
  • Never republish an existing release version
  • Automate tagging and the version bump

Quick Check

Test your understanding of release versioning.

Recap

You learned release automation:

  • Use SemVer for MAJOR.MINOR.PATCH
  • SNAPSHOT for dev, plain version for releases
  • Derive version from Git tags
  • Wrap build+tag+publish into a release task gated in CI
Gratis per iniziare

Impara Groovy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
12
Lezioni
48

Domande Frequenti

La lezione «Versionamento e automazione delle release» è gratuita?

Sì — il testo completo di «Versionamento e automazione delle release» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Groovy & Gradle: JVM Automation and Build Engineering, passa a CoddyKit PRO. Il corso Groovy & Gradle: JVM Automation and Build Engineering include 4 lezioni in totale.

Cosa imparerò in «Versionamento e automazione delle release»?

Automatizzi il versionamento semantico, i tag Git e i flussi di release in Gradle, così ogni build viene identificata in modo riproducibile e le release sono a un solo comando di distanza. Eserciti Groovy & Gradle: JVM Automation and Build Engineering con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Groovy & Gradle: JVM Automation and Build Engineering?

Non è richiesta alcuna esperienza precedente. Groovy & Gradle: JVM Automation and Build Engineering su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Versionamento e automazione delle release»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Groovy & Gradle: JVM Automation and Build Engineering?

Sì. Ogni lezione Groovy & Gradle: JVM Automation and Build Engineering include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Creazione di JAR, WAR ed EAR
  2. Pubblicazione nei repository
  3. Integrazione CI/CD
  4. Versionamento e automazione delle release
← Torna a Groovy & Gradle: JVM Automation and Build Engineering