Groovy & Gradle: JVM Automation and Build Engineering · บทเรียน

การกำหนดรุ่นและการทำกระบวนการเผยแพร่อัตโนมัติ

ทำการกำหนดรุ่นเชิงความหมาย การติดแท็ก Git และกระบวนการเผยแพร่ใน Gradle โดยอัตโนมัติ เพื่อให้ระบุรุ่นของทุกการสร้างซ้ำได้ และการเผยแพร่ทำได้ด้วยคำสั่งเดียว

บทเรียน 4 จาก 413 ขั้นตอน

การกำหนดรุ่นและการทำกระบวนการเผยแพร่อัตโนมัติ เป็นบทเรียน Groovy & Gradle: JVM Automation and Build Engineering ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Groovy & Gradle: JVM Automation and Build Engineering และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Groovy & Gradle: JVM Automation and Build Engineering มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

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
เริ่มต้นได้ฟรี

เรียนรู้ Groovy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
12
บทเรียน
48

คำถามที่พบบ่อย

บทเรียน “การกำหนดรุ่นและการทำกระบวนการเผยแพร่อัตโนมัติ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การกำหนดรุ่นและการทำกระบวนการเผยแพร่อัตโนมัติ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Groovy & Gradle: JVM Automation and Build Engineering ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Groovy & Gradle: JVM Automation and Build Engineering มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การกำหนดรุ่นและการทำกระบวนการเผยแพร่อัตโนมัติ”

ทำการกำหนดรุ่นเชิงความหมาย การติดแท็ก Git และกระบวนการเผยแพร่ใน Gradle โดยอัตโนมัติ เพื่อให้ระบุรุ่นของทุกการสร้างซ้ำได้ และการเผยแพร่ทำได้ด้วยคำสั่งเดียว คุณปฏิบัติ Groovy & Gradle: JVM Automation and Build Engineering ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Groovy & Gradle: JVM Automation and Build Engineering หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Groovy & Gradle: JVM Automation and Build Engineering บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การกำหนดรุ่นและการทำกระบวนการเผยแพร่อัตโนมัติ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Groovy & Gradle: JVM Automation and Build Engineering นี้ได้ไหม

ได้ บทเรียน Groovy & Gradle: JVM Automation and Build Engineering ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การจัดแพ็กเกจ JAR, WAR, EAR
  2. การเผยแพร่ไปยังคลังเก็บ
  3. การผสานรวม CI/CD
  4. การกำหนดรุ่นและการทำกระบวนการเผยแพร่อัตโนมัติ
← กลับไปที่ Groovy & Gradle: JVM Automation and Build Engineering