import com.vanniktech.maven.publish.SonatypeHost version = '1.7.0' buildscript { repositories { mavenCentral() gradlePluginPortal() } dependencies { classpath 'com.vanniktech:gradle-maven-publish-plugin:0.31.0' classpath "io.freefair.lombok:io.freefair.lombok.gradle.plugin:8.13.1" } } allprojects { group = 'io.github.reajason' if (it.name != 'memshell-party-bom') { apply(plugin: 'java') apply(plugin: 'idea') apply(plugin: 'jacoco') apply(plugin: 'io.freefair.lombok') } apply(plugin: 'com.vanniktech.maven.publish') mavenPublishing { publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) signAllPublications() coordinates("io.github.reajason", project.name, rootProject.version as String) pom { name = 'MemShellParty' description = project.description url = 'https://github.com/ReaJason/MemShellParty' inceptionYear = '2025' licenses { license { name = 'MIT' url = 'https://spdx.org/licenses/MIT.html' } } developers { developer { id = 'reajason' name = 'ReaJason' url = "https://reajason.eu.org" } } scm { connection = 'scm:git:https://github.com/ReaJason/MemShellParty.git' developerConnection = 'scm:git:ssh://github.com/ReaJason/MemShellParty.git' url = 'https://github.com/ReaJason/MemShellParty' } } } if (it.name != 'memshell-party-bom' && !it.name.startsWith("vul")) { dependencies { implementation platform(project(':memshell-party-bom')) } } repositories { mavenCentral() } } idea { module { excludeDirs += file('src') } } jacocoTestReport { reports { xml.required = true csv.required = true html.required = true } afterEvaluate { executionData.from fileTree(rootDir) { include '**/build/jacoco/**/*.exec' } sourceDirectories = files('generator/src/main/java') classDirectories.from( fileTree('generator/build/classes/java/main') { excludes = [ 'com/reajason/javaweb/memshell/**/godzilla/**', 'com/reajason/javaweb/memshell/**/injector/**', 'com/reajason/javaweb/memshell/**/command/**', 'com/reajason/javaweb/config/**' ] } ) } } tasks.register('publishAllToMavenCentral') { def isSnapshot = rootProject.version.toString().endsWith('-SNAPSHOT') if (isSnapshot) { dependsOn ':memshell-party-bom:publishAllPublicationsToMavenCentralRepository' dependsOn ':memshell-party-common:publishAllPublicationsToMavenCentralRepository' dependsOn ':deserialize:publishAllPublicationsToMavenCentralRepository' dependsOn ':memshell:publishAllPublicationsToMavenCentralRepository' dependsOn ':memshell-java8:publishAllPublicationsToMavenCentralRepository' dependsOn ':generator:publishAllPublicationsToMavenCentralRepository' } else { dependsOn ':memshell-party-bom:publishAndReleaseToMavenCentral' dependsOn ':memshell-party-common:publishAndReleaseToMavenCentral' dependsOn ':deserialize:publishAndReleaseToMavenCentral' dependsOn ':memshell:publishAndReleaseToMavenCentral' dependsOn ':memshell-java8:publishAndReleaseToMavenCentral' dependsOn ':generator:publishAndReleaseToMavenCentral' } }