Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
version: ["11", "14", "15"]
version: ["11", "14", "15", "16"]
container:
image: jcxldn/openjdk-alpine:${{matrix.version}}-jdk
steps:
Expand Down
48 changes: 33 additions & 15 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,9 @@ subprojects {
// for "api" in dependencies { }
apply plugin: "java-library"

// Use 1.18.20+ for Java 16 compatability
lombok { version = "1.18.20" }

// Spotless Options
spotless {
encoding 'UTF-8' // all formats will be interpreted as UTF-8
Expand All @@ -166,9 +169,7 @@ subprojects {
}

repositories {
// Note: Maven Central is defined in allprojects
jcenter()

// Maven Central is defined in allprojects (for JaCoCo)
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
maven { url "https://papermc.io/repo/repository/maven-public/" }

Expand All @@ -187,9 +188,6 @@ subprojects {
}

dependencies {
compileOnly "org.projectlombok:lombok:1.18.18"
annotationProcessor "org.projectlombok:lombok:1.18.18"

implementation "org.jetbrains:annotations:20.1.0"
implementation "io.github.classgraph:classgraph:4.8.104"
implementation "com.github.seancfoley:ipaddress:5.3.3"
Expand Down Expand Up @@ -272,6 +270,10 @@ dependencies {

// Root build: create uber sources from subproject sources
task rootSources(type: Jar, dependsOn: subprojects.classes) {
// Gradle 7 implicit dependency fix: depend on special common tasks
dependsOn(":common:copyMCFontExtractor")
dependsOn(":common:commonSources")

archiveClassifier.set("sources")
// Use source code from all subprojects for sources.
// TODO: Use certain subprojects only to allow for multiple jar outputs
Expand All @@ -286,10 +288,34 @@ task rootTestReport(type: TestReport) {
reportOn subprojects*.test
}

// Create a libs/modules folder with submodule jars
task copySubprojectJars(type: Copy, dependsOn: subprojects.jar) {
// Gradle 7 implicit dependency fix: depend on special common tasks
dependsOn(":common:copyMCFontExtractor")
dependsOn(":common:commonSources")

// Copy subproject jar and sources
from(subprojects.jar)
from(subprojects.sources)
into rootProject.file("build/libs/modules")
}

// Generate an additional jacoco report project-wide
// src: https://github.com/gradle/gradle/issues/10708#issuecomment-566279825
task rootJacocoMergedReport(type: JacocoReport) {
//dependsOn = subprojects.test
// Gradle 7 implicit dependency fixes
// -------------------------
dependsOn(subprojects.test)
dependsOn(subprojects.javadoc)

dependsOn(subprojects.delombok)
dependsOn(subprojects.jacocoTestReport)

dependsOn(aggregateJavadoc)
dependsOn(copySubprojectJars)
dependsOn(rootTestReport)
// -------------------------

additionalSourceDirs.setFrom files(subprojects.sourceSets.main.allSource.srcDirs)
sourceDirectories.setFrom files(subprojects.sourceSets.main.allSource.srcDirs)
classDirectories.setFrom files(subprojects.sourceSets.main.output)
Expand All @@ -300,14 +326,6 @@ task rootJacocoMergedReport(type: JacocoReport) {
}
}

// Create a libs/modules folder with submodule jars
task copySubprojectJars(type: Copy, dependsOn: subprojects.jar) {
// Copy subproject jar and sources
from(subprojects.jar)
from(subprojects.sources)
into rootProject.file("build/libs/modules")
}

// Root build: run copySubprojectJars after build
tasks.build.finalizedBy copySubprojectJars

Expand Down
10 changes: 8 additions & 2 deletions common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ dependencies {
compileOnly "commons-lang:commons-lang:2.6"
}

// Use --add-opens to ensure functionality of FieldUtil [java.lang.reflect.Field] (required in Java 16+)
// This will export java.lang.reflect to unnamed modules (eg. stickyapi) so that FieldUtil can still function.
// Alternative: ["--illegal-access=warn"] (same functionality as pre Java 16)
// JEP: https://openjdk.java.net/jeps/396
test.jvmArgs = ["--add-opens=java.base/java.lang.reflect=ALL-UNNAMED"]

/*
Build Info
----------
Expand Down Expand Up @@ -95,8 +101,8 @@ task copyMCFontExtractor(type: Copy) {
rename "mc-font-extractor-main-mojangles_width_data.json", "mojangles_width_data.json"
}

// Run the font data copier before compiling the source code.
tasks.compileJava.dependsOn copyMCFontExtractor
// Run the font data copier
tasks.processResources.dependsOn copyMCFontExtractor


// Common build: create a jar from the :common & :common:serverversion projects
Expand Down
3 changes: 1 addition & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
compileJava.options.encoding=UTF-8