diff --git a/.travis.yml b/.travis.yml index 30e1a93909..14c4db7f00 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,14 @@ language: java -install: true jdk: - openjdk8 + - openjdk11 + - openjdk14 +assemble: true +install: true script: - - chmod +x gradlew - - ./gradlew build mapNamedJar checkMappings --stacktrace + - ./gradlew build javadocJar checkMappings --stacktrace notifications: email: false \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index 75f4625e86..d00959a0d2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,8 +6,7 @@ node { stage 'Build' sh "rm -rf build/libs/" - sh "chmod +x gradlew" - sh "./gradlew build publish --refresh-dependencies" + sh "./gradlew build javadocJar publish --refresh-dependencies" stage "Archive artifacts" diff --git a/build.gradle b/build.gradle index 33760734db..91aef23d37 100644 --- a/build.gradle +++ b/build.gradle @@ -13,6 +13,7 @@ buildscript { classpath "com.google.guava:guava:28.0-jre" classpath 'de.undercouch:gradle-download-task:4.0.2' classpath 'net.fabricmc:tiny-remapper:0.2.1.63' + classpath 'net.fabricmc:mappingpoet:0.1.0+build.1' } } @@ -20,6 +21,7 @@ plugins { id 'de.undercouch.download' version '3.4.3' id 'base' id 'maven-publish' + id 'java' // for jd gen } def minecraft_version = "20w14a" @@ -45,11 +47,14 @@ configurations { cacheChangingModulesFor 0, "seconds" } } + javadocClasspath } dependencies { enigmaRuntime "net.fabricmc:stitch:0.4.3.71" enigmaRuntime "cuchaz:enigma:0.15.153" + javadocClasspath "net.fabricmc:fabric-loader:0.8.2+build.194" + javadocClasspath "com.google.code.findbugs:jsr305:3.0.2" } def setupGroup = "jar setup" @@ -662,6 +667,66 @@ task v2MergedYarnJar(dependsOn: ["mergeV2"], type: Jar) { destinationDirectory.set(file("build/libs")) } +def fakeSourceDir = file(".gradle/temp/fakeSource") +task genFakeSource(dependsOn: ["buildYarnTiny", "mapNamedJar"]) { + group = "javadoc generation" + outputs.upToDateWhen { false } + + doLast { + String[] args = [ + buildYarnTiny.v2Output.getAbsolutePath(), + namedJar.getAbsolutePath(), + fakeSourceDir.getAbsolutePath() + ] + + net.fabricmc.mappingpoet.Main.main(args) + + logger.lifecycle ":Fake source generated" + } +} + +tasks.getByName("javadoc") { + dependsOn genFakeSource + dependsOn downloadMcLibs + group = "javadoc generation" + outputs.upToDateWhen { false } + options { + source = "8" + encoding = 'UTF-8' + charSet = 'UTF-8' + memberLevel = JavadocMemberLevel.PRIVATE + links( + 'https://guava.dev/releases/21.0/api/docs/', + 'https://www.javadoc.io/doc/com.google.code.gson/gson/2.8.0/', + 'https://logging.apache.org/log4j/2.x/log4j-api/apidocs/', + // jsr305 need to come before jdk or the anno links are broken + 'https://www.javadoc.io/doc/com.google.code.findbugs/jsr305/3.0.2/', + 'https://javadoc.lwjgl.org/', + 'http://fastutil.di.unimi.it/docs/', + 'https://commons.apache.org/proper/commons-logging/javadocs/api-1.1.3/', + 'https://commons.apache.org/proper/commons-lang/javadocs/api-3.5', + 'https://commons.apache.org/proper/commons-io/javadocs/api-2.5', + 'https://commons.apache.org/proper/commons-codec/archives/1.10/apidocs', + 'https://commons.apache.org/proper/commons-compress/javadocs/api-1.8.1/', + 'https://docs.oracle.com/javase/8/docs/api/' + // Need to add loader jd publication for env annotations! + ) + // Disable the crazy super-strict doclint tool in Java 8 + addStringOption('Xdoclint:none', '-quiet') + } + source fakeSourceDir + classpath = configurations.javadocClasspath.plus downloadMcLibs.outputs.files.asFileTree +} + +task javadocJar(type: Jar, dependsOn: ["javadoc"]) { + group = "javadoc generation" + + from javadoc.destinationDir + + archiveVersion.set yarnVersion + classifier = 'javadoc' +} + publishing { publications { maven(MavenPublication) { @@ -680,6 +745,7 @@ publishing { artifact(v2MergedYarnJar) { classifier "mergedv2" } + artifact javadocJar } } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index cc4fdc293d..490fda8577 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1ba7206f88..6623300beb 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew.bat b/gradlew.bat index 9618d8d960..62bd9b9cce 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"