import java.text.SimpleDateFormat buildscript { configurations.classpath { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' } } plugins { id "architectury-plugin" version "3.4-SNAPSHOT" id "dev.architectury.loom" version "1.5-SNAPSHOT" apply false id "org.cadixdev.licenser" version "0.6.1" id "me.shedaniel.unified-publishing" version "0.1.+" apply false id "maven-publish" } architectury { minecraft = rootProject.minecraft_version } subprojects { apply plugin: "dev.architectury.loom" loom { silentMojangMappingsLicense() } dependencies { minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}" mappings loom.officialMojangMappings() } repositories { maven { url "https://maven.neoforged.net/releases/" } } } allprojects { apply plugin: "java" apply plugin: "architectury-plugin" apply plugin: "org.cadixdev.licenser" ext { isSnapshot = System.getenv("PR_NUM") != null } def runNumber = (System.getenv("GITHUB_RUN_NUMBER") == null ? "9999" : System.getenv("GITHUB_RUN_NUMBER")) if (!ext.isSnapshot) { version = rootProject.base_version + "." + runNumber archivesBaseName = rootProject.archives_base_name } else { version = rootProject.base_version + "-PR." + System.getenv("PR_NUM") + "." + runNumber archivesBaseName = rootProject.archives_base_name_snapshot } group = rootProject.maven_group tasks.withType(JavaCompile) { options.encoding = "UTF-8" options.release = 17 } javadoc { // Architectury's common javadoc has references to platform code, which cannot be resolved normally. // Let's just skip the errors! failOnError = false } license { header = rootProject.file("HEADER") ext { name = "architectury" year = "2020, 2021, 2022" } include "**/*.java" exclude "**/NbtType.java" ignoreFailures = true } ext { releaseChangelog = { def dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm") dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")) def branch if (System.env.BRANCH_NAME) { branch = System.env.BRANCH_NAME branch = branch.substring(branch.lastIndexOf("/") + 1) } else { branch = "git rev-parse --abbrev-ref HEAD".execute().in.text.trim() } if (branch == "HEAD") { branch = "git rev-parse --short HEAD".execute().in.text.trim() } def time = dateFormat.format(new Date()) def changes = new StringBuilder() changes << "## Architectury v$project.version for $project.supported_version\nUpdated at **$time**.\n[Click here for changelog](https://www.github.com/architectury/architectury/commits/$branch)" def proc = "git log --max-count=200 --pretty=format:%s".execute() proc.in.eachLine { line -> def processedLine = line.toString() if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) { changes << "\n- ${processedLine.capitalize()}" } } proc.waitFor() return changes.toString() } } java { withSourcesJar() } } task licenseFormatAll subprojects { p -> licenseFormatAll.dependsOn("${p.path}:licenseFormat") }