diff --git a/bclib-composit.gradle b/bclib-composit.gradle new file mode 100644 index 00000000..3d9f10e6 --- /dev/null +++ b/bclib-composit.gradle @@ -0,0 +1,8 @@ +plugins { + id 'idea' + id 'eclipse' + id 'fabric-loom' + id 'maven-publish' +} + +apply from: "bclib.gradle" \ No newline at end of file diff --git a/bclib.gradle b/bclib.gradle new file mode 100644 index 00000000..0ba6ce46 --- /dev/null +++ b/bclib.gradle @@ -0,0 +1,169 @@ +buildscript { + dependencies { + classpath 'org.kohsuke:github-api:1.114' + } + + repositories { + gradlePluginPortal() + } +} +sourceCompatibility = JavaVersion.VERSION_16 +targetCompatibility = JavaVersion.VERSION_16 + +archivesBaseName = project.archives_base_name +version = project.mod_version +group = project.maven_group + +repositories { + maven { url "https://maven.dblsaiko.net/" } + maven { url "https://server.bbkr.space:8081/artifactory/libs-release/" } + maven { url "https://maven.fabricmc.net/" } + maven { url "https://maven.shedaniel.me/" } + maven { url 'https://maven.blamejared.com' } + maven { url 'https://jitpack.io' } +} + +dependencies { + minecraft "com.mojang:minecraft:${project.minecraft_version}" + mappings minecraft.officialMojangMappings() + modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + + //useApi "vazkii.patchouli:Patchouli:1.16.4-${project.patchouli_version}" +} + +def useOptional(String dep) { + dependencies.modRuntime (dep) { + exclude group: 'net.fabricmc.fabric-api' + exclude group: 'net.fabricmc' + if (!dep.contains("me.shedaniel")) { + exclude group: 'me.shedaniel.cloth' + exclude group: 'me.shedaniel' + } + } + dependencies.modCompileOnly (dep) { + exclude group: 'net.fabricmc.fabric-api' + exclude group: 'net.fabricmc' + if (!dep.contains("me.shedaniel")) { + exclude group: 'me.shedaniel.cloth' + exclude group: 'me.shedaniel' + } + } +} + +def useApi(String dep) { + dependencies.modApi (dep) { + exclude group: 'net.fabricmc.fabric-api' + exclude group: 'net.fabricmc' + if (!dep.contains("me.shedaniel")) { + exclude group: 'me.shedaniel.cloth' + exclude group: 'me.shedaniel' + } + } +} + +processResources { + println "Version: ${project.mod_version}" + inputs.property "version", project.mod_version + // duplicatesStrategy = 'WARN' + + // from(sourceSets.main.resources.srcDirs) { + // include "fabric.mod.json" + // expand "version": version + // } + + // from(sourceSets.main.resources.srcDirs) { + // exclude "fabric.mod.json" + // } + filesMatching("fabric.mod.json") { + expand "version": project.mod_version + } +} + +// ensure that the encoding is set to UTF-8, no matter what the system default is +// this fixes some edge cases with special characters not displaying correctly +// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html +tasks.withType(JavaCompile) { + options.encoding = "UTF-8" + it.options.release = 16 +} + +javadoc { + options.tags = [ "reason" ] + options.stylesheetFile = new File(projectDir, "javadoc.css"); +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task +// if it is present. +// If you remove this task, sources will not be generated. +task sourcesJar(type: Jar, dependsOn: classes) { + classifier = 'sources' + from sourceSets.main.allSource +} + +jar { + from "LICENSE" +} + +artifacts { + archives sourcesJar + archives javadocJar +} + +def env = System.getenv() + +import org.kohsuke.github.GHReleaseBuilder +import org.kohsuke.github.GitHub + +task release(dependsOn: [remapJar, sourcesJar, javadocJar]) { + onlyIf { + env.GITHUB_TOKEN + } + + doLast { + def github = GitHub.connectUsingOAuth(env.GITHUB_TOKEN as String) + def repository = github.getRepository("paulevsGitch/BCLib") + + def releaseBuilder = new GHReleaseBuilder(repository, version as String) + releaseBuilder.name("${archivesBaseName}-${version}") + releaseBuilder.body("A changelog can be found at https://github.com/paulevsGitch/BCLib/commits") + releaseBuilder.commitish("main") + + def ghRelease = releaseBuilder.create() + ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar"), "application/java-archive"); + ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}-sources.jar"), "application/java-archive"); + ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}-javadoc.jar"), "application/java-archive"); + } +} + +// configure the maven publication +publishing { + publications { + gpr(MavenPublication) { + artifactId archivesBaseName + artifact(remapJar) { + builtBy remapJar + } + artifact(sourcesJar) { + builtBy remapSourcesJar + } + } + } + + // select the repositories you want to publish to + repositories { + maven { + name = "GitHubPackages" + url = uri("https://maven.pkg.github.com/paulevsgitch/bclib") + credentials { + username = env.GITHUB_USER + password = env.GITHUB_TOKEN + } + } + } +} diff --git a/build.gradle b/build.gradle index ed0bc1c0..e1d0a7ff 100644 --- a/build.gradle +++ b/build.gradle @@ -1,168 +1,8 @@ -buildscript { - dependencies { - classpath 'org.kohsuke:github-api:1.114' - } -} - plugins { id 'idea' id 'eclipse' - id 'fabric-loom' version '0.8-SNAPSHOT' + id 'fabric-loom' version "${loom_version}" id 'maven-publish' } -sourceCompatibility = JavaVersion.VERSION_16 -targetCompatibility = JavaVersion.VERSION_16 - -archivesBaseName = project.archives_base_name -version = project.mod_version -group = project.maven_group - -repositories { - maven { url "https://maven.dblsaiko.net/" } - maven { url "https://server.bbkr.space:8081/artifactory/libs-release/" } - maven { url "https://maven.fabricmc.net/" } - maven { url 'https://maven.blamejared.com' } - maven { url "https://maven.shedaniel.me/" } - maven { url 'https://jitpack.io' } -} - -dependencies { - minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings minecraft.officialMojangMappings() - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - - //useApi "vazkii.patchouli:Patchouli:1.16.4-${project.patchouli_version}" -} - -def useOptional(String dep) { - dependencies.modRuntime (dep) { - exclude group: 'net.fabricmc.fabric-api' - exclude group: 'net.fabricmc' - if (!dep.contains("me.shedaniel")) { - exclude group: 'me.shedaniel.cloth' - exclude group: 'me.shedaniel' - } - } - dependencies.modCompileOnly (dep) { - exclude group: 'net.fabricmc.fabric-api' - exclude group: 'net.fabricmc' - if (!dep.contains("me.shedaniel")) { - exclude group: 'me.shedaniel.cloth' - exclude group: 'me.shedaniel' - } - } -} - -def useApi(String dep) { - dependencies.modApi (dep) { - exclude group: 'net.fabricmc.fabric-api' - exclude group: 'net.fabricmc' - if (!dep.contains("me.shedaniel")) { - exclude group: 'me.shedaniel.cloth' - exclude group: 'me.shedaniel' - } - } -} - -processResources { - inputs.property "version", project.version - duplicatesStrategy = 'WARN' - - from(sourceSets.main.resources.srcDirs) { - include "fabric.mod.json" - expand "version": project.version - } - - from(sourceSets.main.resources.srcDirs) { - exclude "fabric.mod.json" - } -} - -// ensure that the encoding is set to UTF-8, no matter what the system default is -// this fixes some edge cases with special characters not displaying correctly -// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html -tasks.withType(JavaCompile) { - options.encoding = "UTF-8" -} - -javadoc { - options.tags = [ "reason" ] - options.stylesheetFile = new File(projectDir, "javadoc.css"); -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - -// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task -// if it is present. -// If you remove this task, sources will not be generated. -task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource -} - -jar { - from "LICENSE" -} - -artifacts { - archives sourcesJar - archives javadocJar -} - -def env = System.getenv() - -import org.kohsuke.github.GHReleaseBuilder -import org.kohsuke.github.GitHub - -task release(dependsOn: [remapJar, sourcesJar, javadocJar]) { - onlyIf { - env.GITHUB_TOKEN - } - - doLast { - def github = GitHub.connectUsingOAuth(env.GITHUB_TOKEN as String) - def repository = github.getRepository("paulevsGitch/BCLib") - - def releaseBuilder = new GHReleaseBuilder(repository, version as String) - releaseBuilder.name("${archivesBaseName}-${version}") - releaseBuilder.body("A changelog can be found at https://github.com/paulevsGitch/BCLib/commits") - releaseBuilder.commitish("main") - - def ghRelease = releaseBuilder.create() - ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar"), "application/java-archive"); - ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}-sources.jar"), "application/java-archive"); - ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}-javadoc.jar"), "application/java-archive"); - } -} - -// configure the maven publication -publishing { - publications { - gpr(MavenPublication) { - artifactId archivesBaseName - artifact(remapJar) { - builtBy remapJar - } - artifact(sourcesJar) { - builtBy remapSourcesJar - } - } - } - - // select the repositories you want to publish to - repositories { - maven { - name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/paulevsgitch/bclib") - credentials { - username = env.GITHUB_USER - password = env.GITHUB_TOKEN - } - } - } -} +apply from: "bclib.gradle" \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 058f9b87..67528fc4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,11 +1,14 @@ # Done to increase the memory available to gradle. org.gradle.jvmargs=-Xmx2G +#Loom +loom_version=0.8-SNAPSHOT + # Fabric Properties -# check these on https://fabricmc.net/use +# check these on https://fabricmc.net/versions.html minecraft_version= 1.17.1 -yarn_mappings= 6 loader_version= 0.11.6 +fabric_version = 0.36.1+1.17 # Mod Properties mod_version = 0.3.0 @@ -13,6 +16,4 @@ maven_group = ru.bclib archives_base_name = bclib # Dependencies -# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api -patchouli_version = 50-FABRIC -fabric_version = 0.36.1+1.17 +patchouli_version = 50-FABRIC \ No newline at end of file