Основной build.gradle выглядит следующим образом:
Код: Выделить всё
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
plugins {
id 'java-library'
id "maven-publish"
id 'io.github.goooler.shadow' version '8.1.7'
}
java.toolchain.languageVersion.set(JavaLanguageVersion.of(21))
publishing {
repositories {
maven {
name = "github"
url = uri("https://maven.pkg.github.com/MyProject/MyProject")
credentials(HttpHeaderCredentials);
authentication {
header(HttpHeaderAuthentication)
}
}
}
publications {
gpr(MavenPublication) {
artifact("build/libs/MyProject-1.0-SNAPSHOT.jar") {
builtBy shadowJar
}
groupId 'com.example'
artifactId 'myproject'
}
}
}
archivesBaseName = 'MyProject'
sourceSets.main {
java.srcDirs = ['src']
resources.srcDirs = ['resources']
}
compileJava.options.encoding = 'UTF-8'
shadowJar {
archiveBaseName.set('MyProject')
archiveClassifier.set(null)
}
build.dependsOn shadowJar
Для ясности: при использовании этого кода:
Код: Выделить всё
public class Test {
/**
* Run all tests.
*/
public static void runTests() {
}
}
Я пытался добавить это:
Код: Выделить всё
java {
withSourcesJar()
withJavadocJar()
}
Код: Выделить всё
* What went wrong:
Execution failed for task ':publishGprPublicationToGithubRepository'.
> Failed to publish publication 'gpr' to repository 'github'
> Could not PUT 'https://maven.pkg.github.com/MyProject/MyProject/com/example/myproject/1.0-SNAPSHOT/myproject-1.0-20240906.132919-68.jar.sha1'. Received status code 409 from server: Conflict
Код: Выделить всё
name: Build with gradle
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build
run: ./gradlew shadowJar publish -PgithubAuthHeaderName='Authorization' -PgithubAuthHeaderValue='Bearer ${{ secrets.TOKEN }}'
- name: Upload Artifact to GitHub Action
uses: actions/upload-artifact@v4
with:
name: MyProject
path: build/libs/MyProject-*.jar
Я создал MCVE:
- Репозиторий Github GradlePublishIssue, который является примером API. Просто содержит класс com.elikill58.test.GradleIssue с методом checkIfIssue, имеющим комментарий.
- Репозиторий Github GradlePublishIssueExample, в котором используется первый пример.
В случае затмения вот что я вижу:

< /li>
Подробнее здесь: https://stackoverflow.com/questions/789 ... ub-package
Мобильная версия