Files
CraterLib/build.gradle
2023-05-28 21:52:26 +02:00

155 lines
4.4 KiB
Groovy

plugins {
id 'java'
id 'com.matyrobbrt.mc.registrationutils' version '1.19.3-2.0.1'
id 'maven-publish'
}
registrationUtils {
group 'com.hypherionmc.craterlib.core.systems.reg'
projects {
Common { type 'common'; project ':Common' }
Fabric { type 'fabric'; project ':Fabric' }
//Forge { type 'forge'; project ':Forge' }
}
}
def version_base = "${project.version_major}.${project.version_minor}"
version = "${version_base}.${project.version_patch}"
subprojects {
ext {
isSnapshot = false
}
version = "${version_base}.${project.version_patch}"
group = project.group
// Jenkins
if (System.getenv('BUILD_NUMBER') != null) {
project.isSnapshot = true
version = version_base + "." + System.getenv('BUILD_NUMBER') + "d"
}
apply plugin: 'java'
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
//java.withSourcesJar()
//java.withJavadocJar()
jar {
manifest {
attributes([
'Specification-Title' : mod_name,
'Specification-Vendor' : mod_author,
'Specification-Version' : project.jar.archiveVersion,
'Implementation-Title' : project.name,
'Implementation-Version' : project.jar.archiveVersion,
'Implementation-Vendor' : mod_author,
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
'Timestamp' : System.currentTimeMillis(),
'Built-On-Java' : "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})",
'Build-On-Minecraft' : minecraft_version
])
}
}
repositories {
mavenCentral()
maven {
name = 'Sponge / Mixin'
url = 'https://repo.spongepowered.org/repository/maven-public/'
}
maven {
name = 'Hypherion Maven'
url = 'https://maven.firstdarkdev.xyz/releases/'
}
maven {
name = "TerraformersMC Maven"
url = "https://maven.terraformersmc.com/releases"
}
}
dependencies {
implementation "me.hypherionmc.moon-config:core:${moon_config}"
implementation "me.hypherionmc.moon-config:toml:${moon_config}"
}
tasks.withType(JavaCompile).configureEach {
it.options.encoding = 'UTF-8'
it.options.release = 17
}
// Disables Gradle's custom module metadata from being published to maven. The
// metadata includes mapped dependencies which are not reasonably consumable by
// other mod developers.
tasks.withType(GenerateModuleMetadata) {
enabled = false
}
clean {
delete "$rootDir/artifacts"
}
}
// Standalone or Module JARS
task rpcJar(type: Jar) {
dependsOn(compileJava)
includeEmptyDirs = false
archivesBaseName = "${mod_name}-common-${minecraft_version}"
version = project.version;
classifier = "rpc"
from project(":Common").sourceSets.main.output
include("**\\rpcsdk\\**\\*",
"**\\**\\*.dylib",
"**\\**\\*.dll",
"**\\**\\*.so"
)
}
task configJar(type: Jar) {
dependsOn(compileJava)
includeEmptyDirs = false
archivesBaseName = "${mod_name}-common-${minecraft_version}"
version = project.version;
classifier = "config"
from project(":Common").sourceSets.main.output
include("**\\core\\config\\**\\*", "**\\**\\CraterConstants.*")
}
task eventsJar(type: Jar) {
dependsOn(compileJava)
includeEmptyDirs = false
archivesBaseName = "${mod_name}-common-${minecraft_version}"
version = project.version;
classifier = "events"
from project(":Common").sourceSets.main.output
include("**\\core\\event\\**\\*", "**\\**\\CraterConstants.*")
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId project.group
artifactId "${mod_name}-common-${minecraft_version}"
version project.version
artifact rpcJar
artifact eventsJar
artifact configJar
}
}
repositories {
maven {
url "https://maven.firstdarkdev.xyz/" + (project.isSnapshot ? "snapshots" : "releases")
credentials {
username System.getenv("MAVEN_USER")
password System.getenv("MAVEN_PASS")
}
}
}
}