Versionnement et automatisation des versions
Automatisez le versionnement sémantique, l’étiquetage Git et les processus de publication dans Gradle afin que chaque compilation soit identifiée de manière reproductible et que les versions soient accessibles en une seule commande.
Versionnement et automatisation des versions est une leçon Groovy & Gradle: JVM Automation and Build Engineering gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Groovy & Gradle: JVM Automation and Build Engineering, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Groovy & Gradle: JVM Automation and Build Engineering comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
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.0Bumping 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; fiBest 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
Questions Fréquemment Posées
La leçon « Versionnement et automatisation des versions » est-elle gratuite ?
Oui — le texte complet de « Versionnement et automatisation des versions » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Groovy & Gradle: JVM Automation and Build Engineering, passe à CoddyKit PRO. Le cours Groovy & Gradle: JVM Automation and Build Engineering comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Versionnement et automatisation des versions » ?
Automatisez le versionnement sémantique, l’étiquetage Git et les processus de publication dans Gradle afin que chaque compilation soit identifiée de manière reproductible et que les versions soient a… Tu pratiques Groovy & Gradle: JVM Automation and Build Engineering avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Groovy & Gradle: JVM Automation and Build Engineering ?
Aucune expérience préalable n'est requise. Groovy & Gradle: JVM Automation and Build Engineering sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Versionnement et automatisation des versions » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Groovy & Gradle: JVM Automation and Build Engineering ?
Oui. Chaque leçon Groovy & Gradle: JVM Automation and Build Engineering inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Empaquetage de JAR, WAR et EAR
- Publication dans des dépôts
- Intégration CI/CD
- Versionnement et automatisation des versions