diff --git a/gradle-plugins/builder-plugins/settings.gradle.kts b/gradle-plugins/builder-plugins/settings.gradle.kts new file mode 100644 index 0000000..ba1c7f1 --- /dev/null +++ b/gradle-plugins/builder-plugins/settings.gradle.kts @@ -0,0 +1,31 @@ +@file:Suppress("UnstableApiUsage") + +rootProject.name = "builder-plugins" + + +pluginManagement { + includeBuild("../settings-plugins/") +} + + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + + repositories { + mavenCentral() + gradlePluginPortal() + } + + pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } + } + + versionCatalogs { + create("libs") { + from(files("../../gradle/libs.versions.toml")) + } + } +} diff --git a/gradle-plugins/factorio-mod-manager/settings.gradle.kts b/gradle-plugins/factorio-mod-manager/settings.gradle.kts new file mode 100644 index 0000000..7fafd65 --- /dev/null +++ b/gradle-plugins/factorio-mod-manager/settings.gradle.kts @@ -0,0 +1,31 @@ +@file:Suppress("UnstableApiUsage") + +rootProject.name = "factorio-mod-manager" + + +pluginManagement { + includeBuild("../settings-plugins/") +} + + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + + repositories { + mavenCentral() + gradlePluginPortal() + } + + pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } + } + + versionCatalogs { + create("libs") { + from(files("../../gradle/libs.versions.toml")) + } + } +} diff --git a/gradle-plugins/settings-plugins/build.gradle.kts b/gradle-plugins/settings-plugins/build.gradle.kts new file mode 100644 index 0000000..67a25ac --- /dev/null +++ b/gradle-plugins/settings-plugins/build.gradle.kts @@ -0,0 +1,24 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + `kotlin-dsl` + kotlin("jvm") version embeddedKotlinVersion +} + +val gradleJvmTarget = "11" + +kotlin { + jvmToolchain { + (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(gradleJvmTarget)) + } + + kotlinDslPluginOptions { + jvmTarget.set(gradleJvmTarget) + } +} + +tasks.withType().configureEach { + kotlinOptions { + jvmTarget = gradleJvmTarget + } +} diff --git a/gradle-plugins/settings-plugins/settings.gradle.kts b/gradle-plugins/settings-plugins/settings.gradle.kts new file mode 100644 index 0000000..eef7211 --- /dev/null +++ b/gradle-plugins/settings-plugins/settings.gradle.kts @@ -0,0 +1,25 @@ +rootProject.name = "settings-plugins" + + +@Suppress("UnstableApiUsage") // Central declaration of repositories is an incubating feature +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + + repositories { + mavenCentral() + gradlePluginPortal() + } + + pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } + } + + versionCatalogs { + create("libs") { + from(files("../../gradle/libs.versions.toml")) + } + } +} diff --git a/gradle-plugins/settings-plugins/src/main/kotlin/kafkatorio/convention/settings/repositories.kt b/gradle-plugins/settings-plugins/src/main/kotlin/kafkatorio/convention/settings/repositories.kt new file mode 100644 index 0000000..49df5f0 --- /dev/null +++ b/gradle-plugins/settings-plugins/src/main/kotlin/kafkatorio/convention/settings/repositories.kt @@ -0,0 +1,77 @@ +@file:Suppress("PackageDirectoryMismatch") + +package org.gradle.kotlin.dsl + +import org.gradle.api.artifacts.dsl.RepositoryHandler + + +fun RepositoryHandler.jitpack() { + maven("https://jitpack.io") +} + + +fun RepositoryHandler.myMavenLocal(enabled: Boolean = true) { + if (enabled) { + println("Maven local is enabled") + mavenLocal { + content { +// includeGroup("dev.adamko") +// includeGroup("dev.adamko.kxtsgen") + includeGroup("io.kotest") + } + } + } +} + + +fun RepositoryHandler.sonatypeSnapshot() { + maven("https://oss.sonatype.org/content/repositories/snapshots") { + mavenContent { + snapshotsOnly() + includeGroup("io.kotest") + } + } + maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") { + mavenContent { + snapshotsOnly() + includeGroup("io.kotest") + } + } +} + + +fun RepositoryHandler.nodeDistributions() { + // Declare the Node.js download repository + ivy("https://nodejs.org/dist/") { + name = "Node Distributions at $url" + patternLayout { artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") } + metadataSources { artifact() } + content { includeModule("org.nodejs", "node") } + } +} + + +fun RepositoryHandler.yarnDistributions() { + ivy("https://github.com/yarnpkg/yarn/releases/download") { + name = "Yarn Distributions at $url" + patternLayout { artifact("v[revision]/[artifact](-v[revision]).[ext]") } + metadataSources { artifact() } + content { includeModule("com.yarnpkg", "yarn") } + } +} + + +// https://stackoverflow.com/a/34327202/4161471 +// example: implementation("jmeter-gradle-plugin:jmeter-gradle-plugin:1.0.3@zip") +fun RepositoryHandler.gitHub() { + ivy("https://github.com/") { + patternLayout { + artifact("/[organisation]/[module]/archive/[revision].[ext]") + } + metadataSources { artifact() } + + content { + includeGroup("jmeter-gradle-plugin") + } + } +} diff --git a/gradle-plugins/settings-plugins/src/main/kotlin/kafkatorio/convention/settings/repositories.settings.gradle.kts b/gradle-plugins/settings-plugins/src/main/kotlin/kafkatorio/convention/settings/repositories.settings.gradle.kts new file mode 100644 index 0000000..985683f --- /dev/null +++ b/gradle-plugins/settings-plugins/src/main/kotlin/kafkatorio/convention/settings/repositories.settings.gradle.kts @@ -0,0 +1,44 @@ +package kafkatorio.convention.settings + +@Suppress("UnstableApiUsage") // Central declaration of repositories is an incubating feature +dependencyResolutionManagement { + + // https://github.com/gradle/gradle/issues/15754#issuecomment-763614651 + // https://github.com/gradle/gradle/blob/09fcaacc9848f09aa584b4119be9271bee6916e6/build-logic/build-logic-base/settings-plugin/src/main/kotlin/gradlebuild.repositories.settings.gradle.kts#L68 + + // Cannot use 'FAIL_ON_PROJECT_REPOS' because + // - the 'gradle-guides-plugin' adds a repo (which it should not do) + // - the 'kotlin-gradle-plugin' adds a repo (and removes it afterwards) to download NodeJS +// repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + + repositories { + myMavenLocal() + mavenCentral() + jitpack() + gradlePluginPortal() + + // Declare the Node.js download repository + nodeDistributions() + yarnDistributions() + + maven("https://raw.githubusercontent.com/adamko-dev/kotka-streams/artifacts/m2") { + content { includeGroup("dev.adamko.kotka") } + } + + maven("https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven") { + content { includeGroup("org.jetbrains.kotlinx") } + } + + sonatypeSnapshot() + } + + pluginManagement { + repositories { + myMavenLocal() + gradlePluginPortal() + mavenCentral() + jitpack() + sonatypeSnapshot() + } + } +}