Публикация javadoc с помощью gradle в пакете githubJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Публикация javadoc с помощью gradle в пакете github

Сообщение Anonymous »

У меня есть проект Gradle, который используется в качестве API. Этот API опубликован в пакете github, но без javadoc, даже если комментарий присутствует в репозитории github.
Основной 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
При использовании ./gradlewshadowJarPublish все работает нормально, и я хорошо вижу пакет, доступный на github. Я могу получить к нему доступ, но есть только файл jar без исходного кода И без javadoc. Поэтому моя IDE не показывает мне комментарии при использовании метода, даже если они есть.
Для ясности: при использовании этого кода:

Код: Выделить всё

public class Test {
/**
* Run all tests.
*/
public static void runTests() {
}
}
Я не вижу комментария «Выполнить все тесты» при использовании кода Test.runTests(). (Даже если я делаю это для некоторых других зависимостей, проблема не в моей IDE)
Я пытался добавить это:

Код: Выделить всё

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
Я использую это действие GitHub, чтобы опубликовать его:

Код: Выделить всё

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
Как я могу опубликовать пакет Javadoc в GitHub с помощью gradle?
Я создал MCVE:
  • Репозиторий Github GradlePublishIssue, который является примером API. Просто содержит класс com.elikill58.test.GradleIssue с методом checkIfIssue, имеющим комментарий.
  • Репозиторий Github GradlePublishIssueExample, в котором используется первый пример.
    В случае затмения вот что я вижу:
    Изображение
    < /li>
Примечание. Оба действия github используют TOKEN в качестве секрета, который является базовым токеном аутентификации. В противном случае вы можете изменить свой способ аутентификации.

Подробнее здесь: https://stackoverflow.com/questions/789 ... ub-package
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»