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