diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 64bec8c..dede75b 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -3,7 +3,7 @@ plugins { kotlin("jvm") version "2.3.20" alias(libs.plugins.org.jetbrains.kotlin.plugin.serialization) alias(libs.plugins.io.gitlab.arturbosch.detekt) - + `maven-publish` } detekt { @@ -32,3 +32,20 @@ dependencies { detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.23.8") } + +publishing { + publications { + create("maven") { + groupId = "se.premex.gross" + artifactId = "core" + version = "1.0" + from(components["java"]) + } + } + repositories { + maven { + name = "testing" + url = uri(File(rootDir, "../gross-plugin/build/localMaven")) + } + } +} diff --git a/core/settings.gradle.kts b/core/settings.gradle.kts new file mode 100644 index 0000000..965793b --- /dev/null +++ b/core/settings.gradle.kts @@ -0,0 +1,22 @@ +rootProject.name = "core" + +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } +} + +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } + @Suppress("UnstableApiUsage") + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + @Suppress("UnstableApiUsage") + repositories { + mavenCentral() + } +} diff --git a/gross-plugin/build.gradle.kts b/gross-plugin/build.gradle.kts index 311ac10..9cf71b9 100644 --- a/gross-plugin/build.gradle.kts +++ b/gross-plugin/build.gradle.kts @@ -48,6 +48,7 @@ dependencies { implementation(libs.org.jetbrains.kotlinx.kotlinx.serialization.json) implementation(libs.org.jetbrains.kotlinx.kotlinx.serialization.json.okio) implementation(libs.com.squareup.okio) + implementation("se.premex.gross:core:1.0") compileOnly(libs.com.squareup.licensee) testImplementation(platform(libs.org.junit.junit.bom)) @@ -73,6 +74,7 @@ group = "se.premex" tasks.named("test") { (this as Test).systemProperties["grossVersion"] = version dependsOn(":publishAllPublicationsToTestingRepository") + dependsOn(gradle.includedBuild("core").task(":publishAllPublicationsToTestingRepository")) } publishing { diff --git a/gross-plugin/settings.gradle.kts b/gross-plugin/settings.gradle.kts index a111c31..53b6007 100644 --- a/gross-plugin/settings.gradle.kts +++ b/gross-plugin/settings.gradle.kts @@ -1,5 +1,11 @@ rootProject.name = "gross-plugin" +includeBuild("../core") { + dependencySubstitution { + substitute(module("se.premex.gross:core")).using(project(":")) + } +} + pluginManagement { repositories { gradlePluginPortal() diff --git a/gross-plugin/src/main/kotlin/se/premex/gross/ArtifactCodeGenerator.kt b/gross-plugin/src/main/kotlin/se/premex/gross/ArtifactCodeGenerator.kt index 3da0d10..ec5cdd4 100644 --- a/gross-plugin/src/main/kotlin/se/premex/gross/ArtifactCodeGenerator.kt +++ b/gross-plugin/src/main/kotlin/se/premex/gross/ArtifactCodeGenerator.kt @@ -30,9 +30,10 @@ class ArtifactCodeGenerator( arguments.add(artifact.groupId) arguments.add(artifact.artifactId) arguments.add(artifact.version) - if (artifact.name != null) { + val artifactName = artifact.name + if (artifactName != null) { appendLine("""name = %S,""") - arguments.add(artifact.name) + arguments.add(artifactName) } else { appendLine("""name = null,""") } @@ -48,10 +49,11 @@ class ArtifactCodeGenerator( } appendLine("""),""") - if (artifact.scm != null) { + val artifactScm = artifact.scm + if (artifactScm != null) { appendLine("""scm = %T(%S), """.trimMargin()) arguments.add(ClassName(packageName, scmTypeSpec.name!!)) - arguments.add(artifact.scm.url) + arguments.add(artifactScm.url) } else { appendLine("""scm = null, """.trimMargin()) } diff --git a/gross-plugin/src/main/kotlin/se/premex/gross/core/Artifact.kt b/gross-plugin/src/main/kotlin/se/premex/gross/core/Artifact.kt deleted file mode 100644 index dca7d53..0000000 --- a/gross-plugin/src/main/kotlin/se/premex/gross/core/Artifact.kt +++ /dev/null @@ -1,23 +0,0 @@ -package se.premex.gross.core - -import kotlinx.serialization.Serializable - -@Serializable -data class SpdxLicenses(val identifier: String, val name: String, val url: String) - -@Serializable -data class Scm(val url: String) - -@Serializable -data class UnknownLicenses(val name: String, val url: String) - -@Serializable -data class Artifact( - val groupId: String, - val artifactId: String, - val version: String, - val name: String? = null, - val spdxLicenses: List? = null, - val scm: Scm? = null, - val unknownLicenses: List? = null, -) diff --git a/gross-plugin/src/test/kotlin/se/premex/gross/ArtifactGeneratorTest.kt b/gross-plugin/src/test/kotlin/se/premex/gross/ArtifactGeneratorTest.kt index d4b3071..99241af 100644 --- a/gross-plugin/src/test/kotlin/se/premex/gross/ArtifactGeneratorTest.kt +++ b/gross-plugin/src/test/kotlin/se/premex/gross/ArtifactGeneratorTest.kt @@ -17,9 +17,9 @@ class ArtifactGeneratorTest { private val artifactCodeGenerator = ArtifactCodeGenerator( packageName = packageName, - licenseeTypesGenerator.unknownLicensesTypeSpec, - licenseeTypesGenerator.spdxLicensesTypeSpec, - licenseeTypesGenerator.scmTypeSpec, + spdxLicensesTypeSpec = licenseeTypesGenerator.spdxLicensesTypeSpec, + scmTypeSpec = licenseeTypesGenerator.scmTypeSpec, + unknownLicensesTypeSpec = licenseeTypesGenerator.unknownLicensesTypeSpec, ) @Test @@ -74,7 +74,7 @@ class ArtifactGeneratorTest { name = "testName", spdxLicenses = kotlin.collections.listOf( ), - scm = se.premex.gross.SpdxLicenses("testUrl"), + scm = se.premex.gross.Scm("testUrl"), unknownLicenses = kotlin.collections.listOf( ), ) @@ -110,13 +110,13 @@ class ArtifactGeneratorTest { version = "testVersion", name = "testName", spdxLicenses = kotlin.collections.listOf( - se.premex.gross.UnknownLicenses(identifier = "spdxId1", name = "spdxName1", url = "spdxUrl1"), - se.premex.gross.UnknownLicenses(identifier = "spdxId2", name = "spdxName2", url = "spdxUrl2"), + se.premex.gross.SpdxLicenses(identifier = "spdxId1", name = "spdxName1", url = "spdxUrl1"), + se.premex.gross.SpdxLicenses(identifier = "spdxId2", name = "spdxName2", url = "spdxUrl2"), ), - scm = se.premex.gross.SpdxLicenses("testUrl"), + scm = se.premex.gross.Scm("testUrl"), unknownLicenses = kotlin.collections.listOf( - se.premex.gross.Scm(name = "unknown1", url = "unknown1"), - se.premex.gross.Scm(name = "unknown2", url = "unknown2"), + se.premex.gross.UnknownLicenses(name = "unknown1", url = "unknown1"), + se.premex.gross.UnknownLicenses(name = "unknown2", url = "unknown2"), ), ) diff --git a/settings.gradle.kts b/settings.gradle.kts index 1a96405..1349426 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -41,8 +41,8 @@ dependencyResolutionManagement { rootProject.name = "Gross" includeBuild("gross-plugin") +includeBuild("core") include("ui") -include("core") include(":app") diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index d03a6e4..c939f64 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -41,7 +41,7 @@ kotlin { } dependencies { - api(projects.core) + api("se.premex.gross:core:1.0") implementation(libs.com.squareup.okio) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compose.runtime)