From 55cc1abdff12fdc904c8819c47fcd6476d64d6dd Mon Sep 17 00:00:00 2001 From: Pranav Pandey Date: Wed, 31 Jan 2024 18:00:02 +0530 Subject: [PATCH] Gradle plugin 8.2.2 Gradle wrapper 8.2-bin. Refactor gradle build files. Improve javadoc for maven artifact. --- build.gradle | 13 ++++++- dynamic-engine/build.gradle | 4 +- dynamic-engine/maven.gradle | 47 +++++++++++++++++------- gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 49 insertions(+), 17 deletions(-) diff --git a/build.gradle b/build.gradle index 3c7e845..6903b91 100644 --- a/build.gradle +++ b/build.gradle @@ -28,10 +28,19 @@ buildscript { repositories { mavenCentral() google() + + // Raw R8 releases. + maven { + url("https://storage.googleapis.com/r8-releases/raw") + } } dependencies { - classpath 'com.android.tools.build:gradle:8.0.2' + classpath 'com.android.tools.build:gradle:8.2.2' + + // More info: https://issuetracker.google.com/issues/280659987 + // noinspection GradleDependency, keep R8 version to AGP 8.1.0-beta4. + classpath("com.android.tools:r8:8.1.46") } } @@ -46,7 +55,7 @@ allprojects { } } -task clean(type: Delete) { +tasks.register('clean', Delete) { delete rootProject.buildDir } diff --git a/dynamic-engine/build.gradle b/dynamic-engine/build.gradle index 53ecdd8..d4a2840 100644 --- a/dynamic-engine/build.gradle +++ b/dynamic-engine/build.gradle @@ -60,7 +60,9 @@ project.afterEvaluate { destinationDir = new File(destinationDir, variant.baseName) source = variant.sourceSets.collect { - it.java.sourceFiles }.inject { m, i -> m + i + it.java.sourceFiles + }.inject { + m, i -> m + i } doFirst { classpath = project.files(variant.javaCompileProvider.get().classpath.files, diff --git a/dynamic-engine/maven.gradle b/dynamic-engine/maven.gradle index e0e8312..681661b 100644 --- a/dynamic-engine/maven.gradle +++ b/dynamic-engine/maven.gradle @@ -1,5 +1,5 @@ /* - * Copyright 2017-2023 Pranav Pandey + * Copyright 2017-2024 Pranav Pandey * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,28 +22,46 @@ version = mavenVersion // Android libraries if (project.hasProperty("android")) { - task sourcesJar(type: Jar) { + tasks.register('sourcesJar', Jar) { archiveClassifier.set("sources") from android.sourceSets.main.java.srcDirs } - task javadoc(type: Javadoc) { - dependsOn("generateReleaseRFile") + tasks.register('javadoc', Javadoc) { + dependsOn "generateReleaseRFile" + title "${referenceTitle}

${versionDesc}

${mavenVersion}
" + failOnError = false - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + source = android.sourceSets.main.java.sourceFiles doNotTrackState("Javadoc needs to be generated every time.") - failOnError = false + if (JavaVersion.current().isJava8Compatible()) { + options.addStringOption('Xdoclint:none', '-quiet') + } + + options.memberLevel = JavadocMemberLevel.PROTECTED + exclude "**/R", "**/R.**", "**/R\$**", "**/BuildConfig*" + + options.windowTitle = "${referenceTitle}" + options.links('http://docs.oracle.com/javase/8/docs/api', + 'http://docs.oracle.com/javase/17/docs/api') + options.links('https://developer.android.com/reference') + options.linksOffline('https://developer.android.com/reference', + 'https://developer.android.com/reference/androidx') + options.links('https://pranavpandey.org/dynamic-utils') } } else { // Java libraries - task sourcesJar(type: Jar, dependsOn: classes) { + tasks.register('sourcesJar', Jar) { + dependsOn classes + archiveClassifier.set("sources") from sourceSets.main.allSource } } -task javadocJar(type: Jar, dependsOn: javadoc) { +tasks.register('javadocJar', Jar) { + dependsOn javadoc + archiveClassifier.set("javadoc") from javadoc.destinationDir } @@ -96,7 +114,7 @@ publishing { dependenciesNode = asNode().appendNode('dependencies') } - // Add all that are 'compile' + // Add all that are 'compile' dependencies. configurations.api.allDependencies.each { def dependencyNode = dependenciesNode.appendNode('dependency') dependencyNode.appendNode('groupId', it.group) @@ -117,13 +135,16 @@ signing { } afterEvaluate { project -> - // Fix javadoc generation + // Fix javadoc generation. javadoc.classpath += files(android.libraryVariants.collect { variant -> variant.javaCompileProvider.get().classpath.files }) def pomTask = "generatePomFileForLibraryPublication" + def dependencies = [javadocJar, sourcesJar, assembleRelease, pomTask] - // Convenience task to prepare everything we need for releases - task prepareArtifacts(dependsOn: [javadocJar, sourcesJar, assembleRelease, pomTask]) { } + // Convenience task to prepare everything we need for releases. + tasks.register('prepareArtifacts') { + dependsOn dependencies + } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 348da55..72416cf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip