Код: Выделить всё
MyProject
|----> SubProject 1
|----> SubProject 2
Код: Выделить всё
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)
relocate 'com.mysql.', 'com.example.deps.mysql.'
}
build.dependsOn shadowJar
subprojects {
apply plugin: 'java-library'
group = 'com.example'
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
tasks.withType(ProcessResources) {
filteringCharset = 'UTF-8'
}
repositories {
mavenCentral()
}
dependencies {
implementation "mysql:mysql-connector-java:8.0.33"
}
}
Для ясности: при использовании этого кода:
Код: Выделить всё
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
Подробнее здесь: https://stackoverflow.com/questions/789 ... ub-package
Мобильная версия