mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-03 16:35:50 +00:00
Improve gradle performance significantly
Signed-off-by: solonovamax <solonovamax@12oclockpoint.com>
This commit is contained in:
parent
eee54f507e
commit
4c1e1bb7d5
@ -5,6 +5,23 @@ val versionObj = Version("5", "2", "0", true)
|
|||||||
allprojects {
|
allprojects {
|
||||||
version = versionObj
|
version = versionObj
|
||||||
group = "com.dfsek.terra"
|
group = "com.dfsek.terra"
|
||||||
|
|
||||||
|
tasks.withType<JavaCompile>().configureEach {
|
||||||
|
options.isFork = true
|
||||||
|
options.isIncremental = true
|
||||||
|
}
|
||||||
|
tasks.withType<Test>().configureEach {
|
||||||
|
useJUnitPlatform()
|
||||||
|
|
||||||
|
maxHeapSize = "2G"
|
||||||
|
ignoreFailures = false
|
||||||
|
failFast = true
|
||||||
|
maxParallelForks = (Runtime.getRuntime().availableProcessors()).takeIf { it > 0 } ?: 1
|
||||||
|
|
||||||
|
reports.html.isEnabled = false
|
||||||
|
reports.junitXml.isEnabled = false
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Version class that does version stuff.
|
* Version class that does version stuff.
|
||||||
|
@ -16,17 +16,6 @@ fun Project.configureCommon() {
|
|||||||
configureDistribution()
|
configureDistribution()
|
||||||
|
|
||||||
version = rootProject.version
|
version = rootProject.version
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
tasks.withType<Test>().configureEach {
|
|
||||||
useJUnitPlatform()
|
|
||||||
|
|
||||||
maxHeapSize = "2G"
|
|
||||||
ignoreFailures = false
|
|
||||||
failFast = true
|
|
||||||
maxParallelForks = 12
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Project.getGitHash(): String {
|
fun Project.getGitHash(): String {
|
||||||
|
@ -3,11 +3,10 @@ package com.dfsek.terra
|
|||||||
import org.gradle.api.JavaVersion
|
import org.gradle.api.JavaVersion
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.plugins.JavaPluginConvention
|
import org.gradle.api.plugins.JavaPluginConvention
|
||||||
|
import org.gradle.api.tasks.bundling.Jar
|
||||||
import org.gradle.api.tasks.compile.JavaCompile
|
import org.gradle.api.tasks.compile.JavaCompile
|
||||||
import org.gradle.api.tasks.javadoc.Javadoc
|
import org.gradle.api.tasks.javadoc.Javadoc
|
||||||
import org.gradle.kotlin.dsl.configure
|
import org.gradle.kotlin.dsl.*
|
||||||
import org.gradle.kotlin.dsl.filter
|
|
||||||
import org.gradle.kotlin.dsl.withType
|
|
||||||
import org.gradle.language.jvm.tasks.ProcessResources
|
import org.gradle.language.jvm.tasks.ProcessResources
|
||||||
|
|
||||||
fun Project.configureCompilation() {
|
fun Project.configureCompilation() {
|
||||||
@ -35,4 +34,19 @@ fun Project.configureCompilation() {
|
|||||||
tasks.withType<Javadoc> {
|
tasks.withType<Javadoc> {
|
||||||
options.encoding = "UTF-8"
|
options.encoding = "UTF-8"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.withType<Jar> {
|
||||||
|
archiveBaseName.set("Terra-${archiveBaseName.get()}")
|
||||||
|
from("../LICENSE", "../../LICENSE")
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register<Jar>("sourcesJar") {
|
||||||
|
archiveClassifier.set("sources")
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register<Jar>("javadocJar") {
|
||||||
|
dependsOn("javadoc")
|
||||||
|
archiveClassifier.set("javadoc")
|
||||||
|
from(tasks.getByName<Javadoc>("javadoc").destinationDir)
|
||||||
|
}
|
||||||
}
|
}
|
@ -2,12 +2,24 @@ package com.dfsek.terra
|
|||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.kotlin.dsl.dependencies
|
import org.gradle.kotlin.dsl.dependencies
|
||||||
|
import org.gradle.kotlin.dsl.invoke
|
||||||
import org.gradle.kotlin.dsl.repositories
|
import org.gradle.kotlin.dsl.repositories
|
||||||
|
|
||||||
fun Project.configureDependencies() {
|
fun Project.configureDependencies() {
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
val shaded = create("shaded")
|
||||||
|
getByName("compile").extendsFrom(shaded)
|
||||||
|
val shadedApi = create("shadedApi")
|
||||||
|
shaded.extendsFrom(shadedApi)
|
||||||
|
getByName("api").extendsFrom(shadedApi)
|
||||||
|
val shadedImplementation = create("shadedImplementation")
|
||||||
|
shaded.extendsFrom(shadedImplementation)
|
||||||
|
getByName("implementation").extendsFrom(shadedImplementation)
|
||||||
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri("http://maven.enginehub.org/repo/") }
|
maven { url = uri("https://maven.enginehub.org/repo/") }
|
||||||
maven { url = uri("https://repo.codemc.org/repository/maven-public") }
|
maven { url = uri("https://repo.codemc.org/repository/maven-public") }
|
||||||
maven { url = uri("https://papermc.io/repo/repository/maven-public/") }
|
maven { url = uri("https://papermc.io/repo/repository/maven-public/") }
|
||||||
maven { url = uri("https://maven.fabricmc.net/") }
|
maven { url = uri("https://maven.fabricmc.net/") }
|
||||||
@ -19,6 +31,6 @@ fun Project.configureDependencies() {
|
|||||||
dependencies {
|
dependencies {
|
||||||
"testImplementation"("org.junit.jupiter:junit-jupiter-api:5.7.0")
|
"testImplementation"("org.junit.jupiter:junit-jupiter-api:5.7.0")
|
||||||
"testImplementation"("org.junit.jupiter:junit-jupiter-engine:5.7.0")
|
"testImplementation"("org.junit.jupiter:junit-jupiter-engine:5.7.0")
|
||||||
"compileOnly"("org.jetbrains:annotations:20.1.0")
|
"api"("org.jetbrains:annotations:20.1.0")
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -14,17 +14,6 @@ fun Project.configureDistribution() {
|
|||||||
apply(plugin = "java-library")
|
apply(plugin = "java-library")
|
||||||
apply(plugin = "com.github.johnrengelman.shadow")
|
apply(plugin = "com.github.johnrengelman.shadow")
|
||||||
|
|
||||||
configurations {
|
|
||||||
val shaded = create("shaded")
|
|
||||||
getByName("compile").extendsFrom(shaded)
|
|
||||||
val shadedApi = create("shadedApi")
|
|
||||||
shaded.extendsFrom(shadedApi)
|
|
||||||
getByName("api").extendsFrom(shadedApi)
|
|
||||||
val shadedImplementation = create("shadedImplementation")
|
|
||||||
shaded.extendsFrom(shadedImplementation)
|
|
||||||
getByName("implementation").extendsFrom(shadedImplementation)
|
|
||||||
}
|
|
||||||
|
|
||||||
val downloadDefaultPacks = tasks.create("downloadDefaultPacks") {
|
val downloadDefaultPacks = tasks.create("downloadDefaultPacks") {
|
||||||
group = "terra"
|
group = "terra"
|
||||||
doFirst {
|
doFirst {
|
||||||
@ -38,21 +27,6 @@ fun Project.configureDistribution() {
|
|||||||
}
|
}
|
||||||
tasks["processResources"].dependsOn(downloadDefaultPacks)
|
tasks["processResources"].dependsOn(downloadDefaultPacks)
|
||||||
|
|
||||||
tasks.withType<Jar> {
|
|
||||||
archiveBaseName.set("Terra-${archiveBaseName.get()}")
|
|
||||||
from("../LICENSE", "../../LICENSE")
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.register<Jar>("sourcesJar") {
|
|
||||||
archiveClassifier.set("sources")
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.register<Jar>("javadocJar") {
|
|
||||||
dependsOn("javadoc")
|
|
||||||
archiveClassifier.set("javadoc")
|
|
||||||
from(tasks.getByName<Javadoc>("javadoc").destinationDir)
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.named<ShadowJar>("shadowJar") {
|
tasks.named<ShadowJar>("shadowJar") {
|
||||||
// Tell shadow to download the packs
|
// Tell shadow to download the packs
|
||||||
dependsOn(downloadDefaultPacks)
|
dependsOn(downloadDefaultPacks)
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
import com.dfsek.terra.configureCommon
|
import com.dfsek.terra.configureCommon
|
||||||
|
import com.dfsek.terra.configureCompilation
|
||||||
|
import com.dfsek.terra.configureDependencies
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
|
idea
|
||||||
}
|
}
|
||||||
|
|
||||||
configureCommon()
|
configureCompilation()
|
||||||
|
configureDependencies()
|
||||||
|
|
||||||
group = "com.dfsek.terra.common"
|
group = "com.dfsek.terra.common"
|
||||||
|
|
||||||
|
10
gradle.properties
Normal file
10
gradle.properties
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Magic options for more perf
|
||||||
|
org.gradle.jvmargs=-Xmx2048M -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC
|
||||||
|
org.gradle.vfs.watch=true
|
||||||
|
kapt.use.worker.api=true
|
||||||
|
kapt.include.compile.classpath=false
|
||||||
|
org.gradle.parallel=true
|
||||||
|
org.gradle.caching=true
|
||||||
|
org.gradle.warning.mode=all
|
||||||
|
#org.gradle.logging.level=info
|
||||||
|
org.gradle.configureondemand=true
|
@ -16,7 +16,7 @@ include("platforms:sponge")
|
|||||||
|
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
repositories {
|
repositories {
|
||||||
maven(url = "http://maven.fabricmc.net") {
|
maven(url = "https://maven.fabricmc.net") {
|
||||||
name = "Fabric"
|
name = "Fabric"
|
||||||
}
|
}
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user