การอัปโหลด Maven Artifact ขึ้น GitHub Packages

wk
2 min readNov 18, 2019

--

GitHub มีฟีเจอร์ใหม่ คือ GitHub Packages เป็น Repository สำหรับเก็บ Package ชนิดต่าง ๆ ของโปรเจค เช่น Npm Maven Gradle และ NuGet โดยไม่ต้องพึ่ง Service ภายนอก

ตัวอย่าง การอัปโหลด Maven artifact

  1. สร้างโปรเจคชื่อ hello โดยใช้ Template maven-archetype-quickstart
$ mvn archetype:generate \
-DgroupId=wk \
-DartifactId=hello \
-Dpackagename=wk \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false

2. เพิ่มไฟล์ settings.xml

  • ใช้ Account ของ GitHub เป็น username และ Token เป็น password
<settings>
<servers>
<server>
<id>github</id>
<username>[GitHubAccount]</username>
<password>[GitHubToken]</password>
</server>
</servers>
</settings>
  • Scope ของ Token ต้องเลือก write:packages และ read:packages ดังนี้

3. เพิ่ม Tag distributionManagement ในไฟล์ pom.xml โดยเปลี่ยน [GitHubAccount] และ [GitHubProject] ให้ตรงกับโปรเจคใน GitHub

<distributionManagement>
<repository>
<id>github</id>
<name>GitHub OWNER Apache Maven Packages</name>
<url>
https://maven.pkg.github.com/[GitHubAccount]/[GitHubProject]
</url>
</repository>
</distributionManagement>

4. อัปโหลด Artifact ผ่าน Command line

$ mvn deploy \
-s settings.xml \
-Drepository=github \
-f hello/pom.xml

5. ตรวจสอบผลลัพธ์โดยคลิกที่ลิงค์ packages ในแท็บ Code ของ GitHub

จะมีรายการ Package ทั้งหมดของโปรเจค

สามารถดูรายละเอียด โดยคลิกที่ชื่อ Package ตามตัวอย่าง คือ wk.hello

การใช้งาน Package ใน GitHub Packages

  1. เพิ่ม Repository ในไฟล์ pom.xml
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/[Account]/[Project]</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories

2. เพิ่ม Dependency ในไฟล์ pom.xml

<dependency>
<groupId>wk</groupId>
<artifactId>hello</artifactId>
<version>1.0-snapshot</version>
</dependency>

3. ติดตั้งผ่าน Command line

$ mvn install

--

--

No responses yet