diff --git a/buildSrc/src/main/kotlin/Property.kt b/buildSrc/src/main/kotlin/Property.kt deleted file mode 100644 index 96763f6..0000000 --- a/buildSrc/src/main/kotlin/Property.kt +++ /dev/null @@ -1,5 +0,0 @@ -import org.gradle.api.provider.Property - -infix fun Property.by(value: T) { - set(value) -} diff --git a/buildSrc/build.gradle.kts b/convention-plugins/build.gradle.kts similarity index 85% rename from buildSrc/build.gradle.kts rename to convention-plugins/build.gradle.kts index a698852..18667df 100644 --- a/buildSrc/build.gradle.kts +++ b/convention-plugins/build.gradle.kts @@ -2,11 +2,6 @@ plugins { `kotlin-dsl` } -repositories { - mavenCentral() - gradlePluginPortal() -} - fun plugin(id: String, version: String) = "$id:$id.gradle.plugin:$version" dependencies { diff --git a/convention-plugins/settings.gradle.kts b/convention-plugins/settings.gradle.kts new file mode 100644 index 0000000..14ecc6d --- /dev/null +++ b/convention-plugins/settings.gradle.kts @@ -0,0 +1,7 @@ +dependencyResolutionManagement { + @Suppress("UnstableApiUsage") + repositories { + mavenCentral() + gradlePluginPortal() + } +} diff --git a/buildSrc/src/main/kotlin/PropertyOrEnv.kt b/convention-plugins/src/main/kotlin/PropertyOrEnv.kt similarity index 69% rename from buildSrc/src/main/kotlin/PropertyOrEnv.kt rename to convention-plugins/src/main/kotlin/PropertyOrEnv.kt index 84918e8..5bf2e76 100644 --- a/buildSrc/src/main/kotlin/PropertyOrEnv.kt +++ b/convention-plugins/src/main/kotlin/PropertyOrEnv.kt @@ -1,11 +1,11 @@ import org.gradle.api.Project -fun Project.propertyOrEnv(key: String): String { +internal fun Project.propertyOrEnv(key: String): String { return findProperty(key) as String? ?: System.getenv(key) ?: error("Didn't find any value for the key \"$key\" in Project properties or environment variables.") } -fun Project.propertyOrEnvOrNull(key: String): String? { +internal fun Project.propertyOrEnvOrNull(key: String): String? { return findProperty(key) as String? ?: System.getenv(key) } diff --git a/buildSrc/src/main/kotlin/gradle-plugin.gradle.kts b/convention-plugins/src/main/kotlin/gradle-plugin.gradle.kts similarity index 67% rename from buildSrc/src/main/kotlin/gradle-plugin.gradle.kts rename to convention-plugins/src/main/kotlin/gradle-plugin.gradle.kts index 803319b..e21d859 100644 --- a/buildSrc/src/main/kotlin/gradle-plugin.gradle.kts +++ b/convention-plugins/src/main/kotlin/gradle-plugin.gradle.kts @@ -5,3 +5,7 @@ plugins { dependencies { compileOnly(gradleKotlinDsl()) } + +gradlePlugin { + vcsUrl = Publishing.gitUrl +} diff --git a/buildSrc/src/main/kotlin/kotlin-jvm-lib.gradle.kts b/convention-plugins/src/main/kotlin/kotlin-jvm-lib.gradle.kts similarity index 100% rename from buildSrc/src/main/kotlin/kotlin-jvm-lib.gradle.kts rename to convention-plugins/src/main/kotlin/kotlin-jvm-lib.gradle.kts diff --git a/buildSrc/src/main/kotlin/publishing/MavenMetadata.kt b/convention-plugins/src/main/kotlin/publishing/MavenMetadata.kt similarity index 52% rename from buildSrc/src/main/kotlin/publishing/MavenMetadata.kt rename to convention-plugins/src/main/kotlin/publishing/MavenMetadata.kt index 6acd0bc..b362045 100644 --- a/buildSrc/src/main/kotlin/publishing/MavenMetadata.kt +++ b/convention-plugins/src/main/kotlin/publishing/MavenMetadata.kt @@ -5,54 +5,55 @@ import org.gradle.api.publish.maven.MavenPublication import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.bundling.Jar +import org.gradle.kotlin.dsl.assign import org.gradle.kotlin.dsl.named import org.gradle.kotlin.dsl.register -object Publishing { - const val gitUrl = "https://github.com/LouisCAD/LibPublishingHelpers.git" - const val siteUrl = "https://github.com/LouisCAD/LibPublishingHelpers" +internal object Publishing { + const val gitUrl = "https://github.com/Splitties/LibPublishingHelpers.git" + const val siteUrl = "https://github.com/Splitties/LibPublishingHelpers" const val libraryDesc = "Tools for semi-auto library publishing (and other chores). Designed for Kotlin scripts." } -fun TaskContainer.emptyJavadocJar(): TaskProvider { +internal fun TaskContainer.emptyJavadocJar(): TaskProvider { val taskName = "javadocJar" return try { named(name = taskName) } catch (e: UnknownTaskException) { - register(name = taskName) { archiveClassifier by "javadoc" } + register(name = taskName) { archiveClassifier = "javadoc" } } } -fun MavenPublication.setupPom( +internal fun MavenPublication.setupPom( gitUrl: String = Publishing.gitUrl, siteUrl: String = Publishing.siteUrl, libraryDesc: String = Publishing.libraryDesc ) = pom { if (name.isPresent.not()) { - name by artifactId + name = artifactId } - description by libraryDesc - url by siteUrl + description = libraryDesc + url = siteUrl licenses { license { - name by "The Apache Software License, Version 2.0" - url by "https://www.apache.org/licenses/LICENSE-2.0.txt" + name = "The Apache Software License, Version 2.0" + url = "https://www.apache.org/licenses/LICENSE-2.0.txt" } } developers { developer { - id by "louiscad" - name by "Louis CAD" - email by "louis.cognault@gmail.com" + id = "louiscad" + name = "Louis CAD" + email = "louis.cognault@gmail.com" } } scm { - connection by gitUrl - developerConnection by gitUrl - url by siteUrl + connection = gitUrl + developerConnection = gitUrl + url = siteUrl } if (gitUrl.startsWith("https://github.com")) issueManagement { - system by "GitHub" - url by gitUrl.replace(".git", "/issues") + system = "GitHub" + url = gitUrl.replace(".git", "/issues") } } diff --git a/buildSrc/src/main/kotlin/publishing/Signing.kt b/convention-plugins/src/main/kotlin/publishing/Signing.kt similarity index 76% rename from buildSrc/src/main/kotlin/publishing/Signing.kt rename to convention-plugins/src/main/kotlin/publishing/Signing.kt index 7df3214..8bd301d 100644 --- a/buildSrc/src/main/kotlin/publishing/Signing.kt +++ b/convention-plugins/src/main/kotlin/publishing/Signing.kt @@ -8,9 +8,9 @@ import propertyOrEnv import propertyOrEnvOrNull context (Project) -fun SigningExtension.trySignAll() { +internal fun SigningExtension.trySignAll() { useInMemoryPgpKeys( - propertyOrEnvOrNull("GPG_key_id"), // If using a sub-key. + propertyOrEnvOrNull("GPG_key_id"), // If targeting a sub-key from an exported primary key. propertyOrEnvOrNull("GPG_private_key") ?: return, propertyOrEnv("GPG_private_password") ) diff --git a/buildSrc/src/main/kotlin/publishing/SonatypePublishing.kt b/convention-plugins/src/main/kotlin/publishing/SonatypePublishing.kt similarity index 100% rename from buildSrc/src/main/kotlin/publishing/SonatypePublishing.kt rename to convention-plugins/src/main/kotlin/publishing/SonatypePublishing.kt diff --git a/gradle-plugins/settings-include-dsl/build.gradle.kts b/gradle-plugins/settings-include-dsl/build.gradle.kts index da3c84b..0a02441 100644 --- a/gradle-plugins/settings-include-dsl/build.gradle.kts +++ b/gradle-plugins/settings-include-dsl/build.gradle.kts @@ -1,13 +1,12 @@ plugins { - `gradle-plugin` + id("gradle-plugin") `kotlin-dsl` } group = "org.splitties.gradle" gradlePlugin { - website = "https://github.com/LouisCAD/LibPublishingHelpers/tree/main/gradle-plugins/settings-include-dsl" - vcsUrl = "https://github.com/LouisCAD/LibPublishingHelpers.git" + website = "https://github.com/Splitties/LibPublishingHelpers/tree/main/gradle-plugins/settings-include-dsl" plugins { create(project.name) { id = "org.splitties.settings-include-dsl" diff --git a/gradle-plugins/version-sync/build.gradle.kts b/gradle-plugins/version-sync/build.gradle.kts index a0a3cfc..12e968e 100644 --- a/gradle-plugins/version-sync/build.gradle.kts +++ b/gradle-plugins/version-sync/build.gradle.kts @@ -1,13 +1,12 @@ plugins { - `gradle-plugin` + id("gradle-plugin") `kotlin-dsl` } group = "org.splitties.gradle" gradlePlugin { - website = "https://github.com/LouisCAD/LibPublishingHelpers/tree/main/gradle-plugins/version-sync" - vcsUrl = "https://github.com/LouisCAD/LibPublishingHelpers.git" + website = "https://github.com/Splitties/LibPublishingHelpers/tree/main/gradle-plugins/version-sync" plugins { create(project.name) { id = "org.splitties.version-sync" diff --git a/lib-publishing-helpers/build.gradle.kts b/lib-publishing-helpers/build.gradle.kts index 4dc8d23..41e1b7c 100644 --- a/lib-publishing-helpers/build.gradle.kts +++ b/lib-publishing-helpers/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - `kotlin-jvm-lib` + id("kotlin-jvm-lib") } group = "com.louiscad.incubator" diff --git a/settings.gradle.kts b/settings.gradle.kts index 165782f..c90c0dd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,15 +1,22 @@ -rootProject.name = "LibPublishingHelpers" - -dependencyResolutionManagement { +pluginManagement { + includeBuild("convention-plugins") repositories { + gradlePluginPortal() mavenCentral() } } -val versionOfThisProject: String = file("version.txt").bufferedReader().use { it.readLine() } +plugins { + id("org.splitties.settings-include-dsl") version "0.2.6" + id("org.splitties.version-sync") version "0.2.6" +} -gradle.beforeProject { - version = versionOfThisProject +rootProject.name = "LibPublishingHelpers" + +dependencyResolutionManagement { + repositories { + mavenCentral() + } } include { @@ -19,33 +26,3 @@ include { "version-sync"() } } - -//region include DSL -class ModuleParentScope( - private val name: String, - private val parent: ModuleParentScope? = null -) { - - operator fun String.invoke(block: (ModuleParentScope.() -> Unit)? = null) { - check(startsWith(':').not()) - val moduleName = ":$this" - val projectName = "$parentalPath$moduleName" - include(projectName) - block?.let { buildNode -> - ModuleParentScope( - name = moduleName, - parent = this@ModuleParentScope - ).buildNode() - } - } - - private val parentalPath: String = - generateSequence(this) { it.parent } - .map { it.name }.toList().reversed().joinToString("") - -} - -inline fun include(block: ModuleParentScope.() -> Unit) { - ModuleParentScope("").block() -} -//endregion