Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
misc cleanup
Browse files Browse the repository at this point in the history
RBusarow committed Dec 2, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent d023527 commit 9bea4a5
Showing 3 changed files with 22 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@ package com.squareup.anvil.conventions
import com.rickbusarow.kgx.applyOnce
import com.rickbusarow.kgx.dependsOn
import com.rickbusarow.kgx.javaExtension
import com.squareup.anvil.conventions.PublishConventionPlugin.Companion.PUBLISH_TO_BUILD_M2
import com.squareup.anvil.conventions.utils.javaSourceSet
import org.gradle.api.Plugin
import org.gradle.api.Project
@@ -11,6 +12,14 @@ import org.gradle.api.tasks.testing.Test
import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.gradle.plugins.ide.idea.model.IdeaModel

/**
* This plugin will:
* - add a `gradleTest` source set to the project.
* - declare that source set as a "test" source set in the IDE.
* - register a `gradleTest` task that runs the tests in the `gradleTest` source set.
* - make the `check` task depend upon the `gradleTest` task.
* - make the `gradleTest` task depend upon the `publishToBuildM2` task..
*/
abstract class GradleTestsPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.plugins.applyOnce("idea")
@@ -58,6 +67,8 @@ abstract class GradleTestsPlugin : Plugin<Project> {
task.testClassesDirs = javaSourceSet.output.classesDirs
task.classpath = javaSourceSet.runtimeClasspath
task.inputs.files(javaSourceSet.allSource)

task.dependsOn(target.rootProject.tasks.named(PUBLISH_TO_BUILD_M2))
}

// Make `check` depend upon `gradleTest`
Original file line number Diff line number Diff line change
@@ -5,8 +5,7 @@ import com.rickbusarow.kgx.extras
import com.rickbusarow.kgx.getOrNullAs
import com.rickbusarow.kgx.mustRunAfter
import com.squareup.anvil.conventions.utils.gradlePublishingExtension
import com.squareup.anvil.conventions.utils.isInMainAnvilBuild
import com.vanniktech.maven.publish.JavadocJar
import com.vanniktech.maven.publish.JavadocJar.Dokka
import com.vanniktech.maven.publish.KotlinJvm
import com.vanniktech.maven.publish.MavenPublishBaseExtension
import com.vanniktech.maven.publish.Platform
@@ -38,13 +37,6 @@ open class PublishConventionPlugin : Plugin<Project> {
mavenPublishing.pomFromGradleProperties()
mavenPublishing.signAllPublications()

val javadocJar = if (target.isInMainAnvilBuild()) {
JavadocJar.Dokka("dokkaHtml")
} else {
// skip Dokka if this is just publishing for integration tests
JavadocJar.None()
}

target.plugins.withId("org.jetbrains.kotlin.jvm") {
when {
target.plugins.hasPlugin(pluginPublishId) -> {
@@ -56,13 +48,15 @@ open class PublishConventionPlugin : Plugin<Project> {
configurePublication(
target,
mavenPublishing,
KotlinJvm(javadocJar = javadocJar, sourcesJar = true),
KotlinJvm(javadocJar = Dokka("dokkaHtml"), sourcesJar = true),
)
}
}
}

// We publish all artifacts to `anvil/build/m2` for the plugin integration tests.
// The generated projects in tests use this repository to get the plugin
// and the other published artifacts, so that the tests have a realistic classpath.
target.gradlePublishingExtension.repositories { repositories ->
repositories.maven {
it.name = "buildM2"
@@ -84,7 +78,7 @@ open class PublishConventionPlugin : Plugin<Project> {
*/
private fun setUpPublishToBuildM2(target: Project) {

val publishToBuildM2 = target.tasks.register("publishToBuildM2") {
val publishToBuildM2 = target.tasks.register(PUBLISH_TO_BUILD_M2) {
it.group = "Publishing"
it.description = "Delegates to the publishAllPublicationsToBuildM2Repository task " +
"on projects where publishing is enabled."
@@ -95,7 +89,7 @@ open class PublishConventionPlugin : Plugin<Project> {
target.extras["skipDokka"] = true
}

target.rootProject.tasks.named("publishToBuildM2").dependsOn(publishToBuildM2)
target.rootProject.tasks.named(PUBLISH_TO_BUILD_M2).dependsOn(publishToBuildM2)
}

@Suppress("UnstableApiUsage")
@@ -110,6 +104,10 @@ open class PublishConventionPlugin : Plugin<Project> {
it.mustRunAfter(target.tasks.withType(Jar::class.java))
}
}

companion object {
internal const val PUBLISH_TO_BUILD_M2 = "publishToBuildM2"
}
}

open class PublishExtension @Inject constructor(
Original file line number Diff line number Diff line change
@@ -27,9 +27,7 @@ open class RootPlugin : BasePlugin() {

target.logVersionInfo()

if (target.isInMainAnvilBuild() || target.isInDelegateBuild()) {
target.registerPublishStubTask()
}
target.registerPublishStubTask()
}

private fun Project.logVersionInfo() {

0 comments on commit 9bea4a5

Please sign in to comment.