Table of contents
Open Table of contents
准备
- Spring Boot的可以执行jar包叫bootJar,用于依赖的Plain jar叫jar
- 在项目设置中添加两个Actions secrets
USERNAME:GitHub用户名
GITHUB_TOKEN:GitHub的token,有读写删packages的权限
Gradle Config
plugins {
...
id 'maven-publish'
}
...
bootJar {
enabled = false
archiveClassifier = 'boot'
}
jar {
enabled = true
archiveClassifier = ''
}
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/xutingzhou/gradle-lib-demo")
credentials {
username = System.getenv("USERNAME")
password = System.getenv("GITHUB_TOKEN")
}
}
}
publications {
gpr(MavenPublication) {
artifact jar //Spring Boot的用于依赖jar
//artifact bootJar //Spring Boot的可执行jar
}
}
}
action.yml
name: Publish package to GitHub Packages
on:
release:
types: [ created ]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
java-version: 11
distribution: adopt
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Publish package
uses: gradle/gradle-build-action@v2
with:
arguments: publish
env:
USERNAME: ${{ secrets.USERNAME }}
GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
需要将gradlew设置可执行,不然会报错
- name: Make gradlew executable
run: chmod +x ./gradlew
报错信息
/home/runner/work/_temp/cf1a2363-0c16-47df-b928-cfef31860ce6.sh: line 1: ./gradlew: Permission denied
或者
Error: Gradle script '/home/runner/work/gradle-lib-demo/gradle-lib-demo/gradlew' is not executable.
默认打包用于依赖的jar的命名会添加plain,需要将命名中的plain去掉,才能在引用依赖的时候正确下载jar包
jar {
archiveClassifier = ''
}