diff --git a/README.md b/README.md index 95f9d13..18996b5 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ dependencies { ``` Instructions for using with Maven, Ivy, etc. can be found -on [Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/urlencoder). +on [Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/urlencoder-jvm). ## Standalone usage @@ -85,10 +85,10 @@ Encode and decode URL components defensively. ### Running with Gradle ```shell -./gradlew run --args="-e 'a test &'" # -> a%20test%20%26 -./gradlew run --args="%#okékÉȢ" # -> %25%23ok%C3%A9k%C3%89%C8%A2 +./gradlew run --quiet --args="-e 'a test &'" # -> a%20test%20%26 +./gradlew run --quiet --args="%#okékÉȢ" # -> %25%23ok%C3%A9k%C3%89%C8%A2 -./gradlew run --args="-d 'a%20test%20%26'" # -> a test & +./gradlew run --quiet --args="-d 'a%20test%20%26'" # -> a test & ``` ### Running with Java @@ -96,23 +96,23 @@ Encode and decode URL components defensively. First build the jar file: ```shell -./gradlew clean fatJar +./gradlew fatJar ``` Then run it: ```shell -java -jar lib/build/libs/urlencoder-*all.jar -e "a test &" # -> a%20test%20%26 -java -jar lib/build/libs/urlencoder-*all.jar "%#okékÉȢ" # -> %25%23ok%C3%A9k%C3%89%C8%A2 +java -jar urlencoder-app/build/libs/urlencoder-*all.jar -e "a test &" # -> a%20test%20%26 +java -jar urlencoder-app/build/libs/urlencoder-*all.jar "%#okékÉȢ" # -> %25%23ok%C3%A9k%C3%89%C8%A2 -java -jar lib/build/libs/urlencoder-*.all.jar -d "a%20test%20%26" # -> a test & +java -jar urlencoder-app/build/libs/urlencoder-*all.jar -d "a%20test%20%26" # -> a test & ``` ## Why not simply use `java.net.URLEncoder`? Apart for being quite inefficient, some URL components encoded with `URLEncoder.encode` might not be able to be properly decoded. -For example, a simply search query such as: +For example, a simple search query such as: ```kotlin val u = URLEncoder.encode("foo +bar", StandardCharsets.UTF_8) @@ -139,4 +139,3 @@ foo++bar Unfortunately, decoding with [Uri.decode](https://developer.android.com/reference/android/net/Uri#decode(java.lang.String)) on Android, [decodeURI](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI) in Javascript, etc. would yield the exact same result. ![URLEncoder](https://live.staticflickr.com/65535/52607534147_6197b42666_z.jpg) - diff --git a/app/pom.xml b/app/pom.xml deleted file mode 100644 index 087b75b..0000000 --- a/app/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - 4.0.0 - net.thauvin.erik - urlencoder - 1.4.0-SNAPSHOT - UrlEncoder for Kotlin - A simple defensive application to encode/decode URL components - https://github.com/ethauvin/urlencoder - - - The Apache License, Version 2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - - - - - gbevin - Geert Bevin - gbevin@uwyn.com - https://github.com/gbevin - - - ethauvin - Erik C. Thauvin - erik@thauvin.net - https://erik.thauvin.net/ - - - - scm:git://github.com/ethauvin/urlencoder.git - scm:git@github.com:ethauvin/urlencoder.git - https://github.com/ethauvin/urlencoder - - - GitHub - https://github.com/ethauvin/urlencoder/issues - - - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - 1.9.0 - compile - - - net.thauvin.erik - urlencoder-lib - 1.4.0-SNAPSHOT - runtime - - - diff --git a/build.gradle.kts b/build.gradle.kts index 53f13b1..c710ce6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -24,6 +24,6 @@ group = "net.thauvin.erik" version = "1.4.0-SNAPSHOT" dependencies { - kover(projects.lib) - kover(projects.app) + kover(projects.urlencoderLib) + kover(projects.urlencoderApp) } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 1919b2d..291ee4f 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -9,3 +9,14 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0") implementation("org.jetbrains.kotlinx:kover-gradle-plugin:0.7.1") } + +dependencyLocking { + lockMode.set(LockMode.STRICT) +} + +configurations { + // only lock compile & runtime to prevent error: + // Locking strict mode: Configuration ':buildSrc:testCompileClasspath' is locked but does not have lock state. + compileClasspath { resolutionStrategy.activateDependencyLocking() } + runtimeClasspath { resolutionStrategy.activateDependencyLocking() } +} diff --git a/buildSrc/gradle.lockfile b/buildSrc/gradle.lockfile new file mode 100644 index 0000000..970d12d --- /dev/null +++ b/buildSrc/gradle.lockfile @@ -0,0 +1,68 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +com.fasterxml.jackson.core:jackson-annotations:2.12.7=runtimeClasspath +com.fasterxml.jackson.core:jackson-core:2.12.7=runtimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.12.7.1=runtimeClasspath +com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.7=runtimeClasspath +com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.7=runtimeClasspath +com.fasterxml.jackson.module:jackson-module-kotlin:2.12.7=runtimeClasspath +com.fasterxml.jackson:jackson-bom:2.12.7=runtimeClasspath +com.fasterxml.woodstox:woodstox-core:6.2.4=runtimeClasspath +com.github.ben-manes:gradle-versions-plugin:0.47.0=compileClasspath,runtimeClasspath +com.squareup.moshi:moshi-kotlin:1.12.0=runtimeClasspath +com.squareup.moshi:moshi:1.12.0=runtimeClasspath +com.squareup.okhttp3:okhttp:4.11.0=runtimeClasspath +com.squareup.okio:okio-jvm:3.2.0=runtimeClasspath +com.squareup.okio:okio:3.2.0=runtimeClasspath +com.thoughtworks.xstream:xstream:1.4.20=runtimeClasspath +io.github.x-stream:mxparser:1.2.2=runtimeClasspath +io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.23.0=compileClasspath,runtimeClasspath +jakarta.activation:jakarta.activation-api:1.2.1=runtimeClasspath +jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=runtimeClasspath +org.codehaus.woodstox:stax2-api:4.2.1=runtimeClasspath +org.jetbrains.dokka:dokka-core:1.8.20=compileClasspath,runtimeClasspath +org.jetbrains.dokka:dokka-gradle-plugin:1.8.20=compileClasspath,runtimeClasspath +org.jetbrains.intellij.deps:trove4j:1.0.20200330=runtimeClasspath +org.jetbrains.kotlin:kotlin-android-extensions:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-build-tools-api:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-compiler-runner:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-daemon-client:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-gradle-plugins-bom:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-native-utils:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-project-model:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-reflect:1.8.20=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-scripting-common:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.0=runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20=compileClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.21=runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=compileClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21=runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=compileClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21=runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.8.20=compileClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.8.21=runtimeClasspath +org.jetbrains.kotlin:kotlin-tooling-core:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-util-io:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-util-klib:1.9.0=compileClasspath,runtimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.3=runtimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.3=runtimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3=runtimeClasspath +org.jetbrains.kotlinx:kover-gradle-plugin:0.7.1=compileClasspath,runtimeClasspath +org.jetbrains:annotations:13.0=compileClasspath,runtimeClasspath +org.jetbrains:markdown-jvm:0.3.1=compileClasspath,runtimeClasspath +org.jetbrains:markdown:0.3.1=compileClasspath,runtimeClasspath +org.jsoup:jsoup:1.15.3=runtimeClasspath +xmlpull:xmlpull:1.1.3.1=runtimeClasspath +empty=kotlinScriptDefExtensions diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts index 59e3a56..4186f9e 100644 --- a/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts +++ b/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts @@ -16,3 +16,21 @@ tasks.withType().configureEach { isPreserveFileTimestamps = false isReproducibleFileOrder = true } + +dependencyLocking { + lockMode.set(LockMode.STRICT) + lockAllConfigurations() +} + +tasks.register("resolveAndLockAllDependencies") { + // https://docs.gradle.org/current/userguide/dependency_locking.html#ex-resolving-all-configurations + group = "dependencies" + notCompatibleWithConfigurationCache("Filters configurations at execution time") + val resolvableConfigurations = configurations.matching { it.isCanBeResolved } + doFirst { + require(gradle.startParameter.isWriteDependencyLocks) { "$path must be run from the command line with the `--write-locks` flag" } + } + doLast { + resolvableConfigurations.forEach { it.resolve() } + } +} diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-jvm.gradle.kts deleted file mode 100644 index fd1e8bf..0000000 --- a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-jvm.gradle.kts +++ /dev/null @@ -1,47 +0,0 @@ -package buildsrc.conventions.lang - -import buildsrc.utils.Rife2TestListener -import org.gradle.api.tasks.testing.logging.TestExceptionFormat -import org.gradle.api.tasks.testing.logging.TestLogEvent -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - -/** - * Common configuration for Kotlin/JVM projects - * - * (this can be removed after Kotlin Multiplatform migration) - */ - -plugins { - id("buildsrc.conventions.base") - kotlin("jvm") - id("io.gitlab.arturbosch.detekt") - id("org.jetbrains.kotlinx.kover") -} - -java { - withSourcesJar() -} - -kotlin { - jvmToolchain(11) -} - -tasks.withType().configureEach { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_11) - } -} - -tasks.withType().configureEach { -// useJUnitPlatform() - - val testsBadgeApiKey = providers.gradleProperty("testsBadgeApiKey") - addTestListener(Rife2TestListener(testsBadgeApiKey)) - testLogging { - exceptionFormat = TestExceptionFormat.FULL - events = setOf(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) - } - - finalizedBy(tasks.matching { it.name == "koverXmlReport" }) -} diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-base.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-base.gradle.kts index 7978714..052fd92 100644 --- a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-base.gradle.kts +++ b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-base.gradle.kts @@ -43,8 +43,8 @@ kotlin { sourceSets.configureEach { languageSettings { -// languageVersion = -// apiVersion = + // languageVersion = + // apiVersion = } } } diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-native.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-native.gradle.kts index 7e8bb2a..e29ad97 100644 --- a/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-native.gradle.kts +++ b/buildSrc/src/main/kotlin/buildsrc/conventions/lang/kotlin-multiplatform-native.gradle.kts @@ -34,23 +34,21 @@ kotlin { // ├── watchosX64 // └── watchosSimulatorArm64Main - targets { - linuxX64() + linuxX64() - mingwX64() + mingwX64() - macosX64() - macosArm64() + macosX64() + macosArm64() - // https://kotlinlang.org/docs/multiplatform-share-on-platforms.html#use-target-shortcuts - ios() // iosArm64, iosX64 - watchos() // watchosArm32, watchosArm64, watchosX64 - tvos() // tvosArm64, tvosX64 + // https://kotlinlang.org/docs/multiplatform-share-on-platforms.html#use-target-shortcuts + ios() // iosArm64, iosX64 + watchos() // watchosArm32, watchosArm64, watchosX64 + tvos() // tvosArm64, tvosX64 - iosSimulatorArm64() - tvosSimulatorArm64() - watchosSimulatorArm64() - } + iosSimulatorArm64() + tvosSimulatorArm64() + watchosSimulatorArm64() @Suppress("UNUSED_VARIABLE") sourceSets { @@ -79,22 +77,22 @@ kotlin { val iosMain by getting { dependsOn(nativeMain) } val iosTest by getting { dependsOn(nativeTest) } -// val iosSimulatorArm64Main by getting { dependsOn(iosMain) } -// val iosSimulatorArm64Test by getting { dependsOn(iosTest) } - -// // Apple - tvOS -// val tvosMain by getting { dependsOn(nativeMain) } -// val tvosTest by getting { dependsOn(nativeTest) } -// -// val tvosSimulatorArm64Main by getting { dependsOn(tvosMain) } -// val tvosSimulatorArm64Test by getting { dependsOn(tvosTest) } -// -// // Apple - watchOS -// val watchosMain by getting { dependsOn(nativeMain) } -// val watchosTest by getting { dependsOn(nativeTest) } -// -// val watchosSimulatorArm64Main by getting { dependsOn(watchosMain) } -// val watchosSimulatorArm64Test by getting { dependsOn(watchosTest) } + // val iosSimulatorArm64Main by getting { dependsOn(iosMain) } + // val iosSimulatorArm64Test by getting { dependsOn(iosTest) } + + // // Apple - tvOS + // val tvosMain by getting { dependsOn(nativeMain) } + // val tvosTest by getting { dependsOn(nativeTest) } + + // val tvosSimulatorArm64Main by getting { dependsOn(tvosMain) } + // val tvosSimulatorArm64Test by getting { dependsOn(tvosTest) } + + // // Apple - watchOS + // val watchosMain by getting { dependsOn(nativeMain) } + // val watchosTest by getting { dependsOn(nativeTest) } + + // val watchosSimulatorArm64Main by getting { dependsOn(watchosMain) } + // val watchosSimulatorArm64Test by getting { dependsOn(watchosTest) } // val iosArm32Main by getting { dependsOn(desktopMain) } // val iosArm32Test by getting { dependsOn(nativeTest) } diff --git a/buildSrc/src/main/kotlin/buildsrc/conventions/publishing.gradle.kts b/buildSrc/src/main/kotlin/buildsrc/conventions/publishing.gradle.kts index 9155ad4..a3800c4 100644 --- a/buildSrc/src/main/kotlin/buildsrc/conventions/publishing.gradle.kts +++ b/buildSrc/src/main/kotlin/buildsrc/conventions/publishing.gradle.kts @@ -89,6 +89,7 @@ signing { !isSnapshotVersion() || gradle.taskGraph.hasTask("publish") }) } + tasks.withType().configureEach { val signingRequiredPredicate = provider { signing.isRequired } onlyIf { signingRequiredPredicate.get() } @@ -106,3 +107,9 @@ val javadocJar by tasks.registering(Jar::class) { from(tasks.dokkaJavadoc) archiveClassifier.set("javadoc") } + +publishing { + publications.withType().configureEach { + artifact(javadocJar) + } +} diff --git a/gradle.lockfile b/gradle.lockfile new file mode 100644 index 0000000..9654a6a --- /dev/null +++ b/gradle.lockfile @@ -0,0 +1,9 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +org.freemarker:freemarker:2.3.30=koverJvmReporter +org.jetbrains.intellij.deps:coverage-report:1.0.19=koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.721=koverJvmAgent,koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.721=koverJvmReporter +org.jetbrains:annotations:16.0.2=koverJvmReporter +empty=koverExternalArtifacts diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..ec527a3 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,9 @@ +org.gradle.jvmargs=-Dfile.encoding=UTF-8 + +org.gradle.caching=true +org.gradle.parallel=true +org.gradle.welcome=never + +# enableKgpDependencyResolution provides a smoother import experience in multiplatform projects +# https://kotlinlang.org/docs/whatsnew1820.html#preview-of-gradle-composite-builds-support-in-kotlin-multiplatform +kotlin.mpp.import.enableKgpDependencyResolution=true diff --git a/lib/pom.xml b/lib/pom.xml deleted file mode 100644 index 79c97ad..0000000 --- a/lib/pom.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - 4.0.0 - net.thauvin.erik - urlencoder-lib - 1.4.0-SNAPSHOT - UrlEncoder for Kotlin - A simple defensive library to encode/decode URL components - https://github.com/ethauvin/urlencoder - - - The Apache License, Version 2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - - - - - gbevin - Geert Bevin - gbevin@uwyn.com - https://github.com/gbevin - - - ethauvin - Erik C. Thauvin - erik@thauvin.net - https://erik.thauvin.net/ - - - - scm:git://github.com/ethauvin/urlencoder.git - scm:git@github.com:ethauvin/urlencoder.git - https://github.com/ethauvin/urlencoder - - - GitHub - https://github.com/ethauvin/urlencoder/issues - - - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - 1.9.0 - compile - - - diff --git a/lib/pom.xml.asc b/lib/pom.xml.asc deleted file mode 100644 index fb5746a..0000000 --- a/lib/pom.xml.asc +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: BCPG v1.68 - -iQIzBAABCAAdFiEEOckYpvaxKUI3I6Pxd2cCpqLaMw4FAmO46y8ACgkQd2cCpqLa -Mw49qg//YPTr/FbXTVDB2KsPRRRMAMf3tQxvYknuMJsAIOTq9XfkmWM6XY+A1L6+ -Up98MLrBMFKckrZ90bypTCZGhIi52yoE6StchFMJiuLGE+OwQIwPxaX0LNN3pLD6 -BE5muGYZV762PeTkNU0oXNX+e0ReATnUHiriNvz9mZN/xDQLQ+C54wlu9wTKVC6l -beDezJsNYS4OhQJuJk4bm7w5umEocvbOydzSa/a95hQY9EfsQOUkc4jdGbDRGjKX -ladPDl8B+Y1+peJDkzcgL+A2T0mJ4bxouI32cGyQBXvawfcfz7ksifhoRDyESXrt -YoQMcVb9Bnv/k2r4jPSb92znTwCWY7joXrTE44C3wUk6cg8QoCEmjAdEfxwCM17f -pYIoejBGAMp3xYmzBJg4017e+Tg8hR2SrQHAF65GezEi/d9SOAevEp9aOPPSWOI1 -0LgMcBAE9yxCF2r8EHpFyD2dHfaOI9kKsBfGyKn+8ksu75l6bCZRFJu4syYaNLZn -b9kHAHgmfikKMnHBZGr/SqYADnCLr/PwJFOhACDYtbhcXVm4PJT3l6Yep8xG1N84 -+qTFA6CuOZjAklonbroHlkgn8ixhuC9ZNtKaIH6zvdG9SoaN4yMu7Itk6GtAAQy6 -qCB+3oylZlKjh1mVo9X8iatL8rdgn8dsEwvC+ItsjsnxXtCPhX4= -=amWH ------END PGP SIGNATURE----- diff --git a/settings.gradle.kts b/settings.gradle.kts index 86af703..5e247de 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -23,6 +23,6 @@ dependencyResolutionManagement { enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") include( - ":app", - ":lib", + ":urlencoder-app", + ":urlencoder-lib", ) diff --git a/app/build.gradle.kts b/urlencoder-app/build.gradle.kts similarity index 69% rename from app/build.gradle.kts rename to urlencoder-app/build.gradle.kts index 569519b..f9f6279 100644 --- a/app/build.gradle.kts +++ b/urlencoder-app/build.gradle.kts @@ -18,7 +18,7 @@ import org.jetbrains.dokka.gradle.DokkaTask plugins { - buildsrc.conventions.lang.`kotlin-jvm` + buildsrc.conventions.lang.`kotlin-multiplatform-jvm` buildsrc.conventions.publishing id("application") id("com.github.ben-manes.versions") @@ -29,13 +29,21 @@ description = "A simple defensive application to encode/decode URL components" val deployDir = project.layout.projectDirectory.dir("deploy") val urlEncoderMainClass = "net.thauvin.erik.urlencoder.UrlEncoder" -dependencies { - implementation(projects.lib) - kover(projects.lib) - -// testImplementation("com.willowtreeapps.assertk:assertk-jvm:0.25") -// testImplementation("org.junit.jupiter:junit-jupiter:5.9.1") - testImplementation(kotlin("test")) +kotlin { + sourceSets { + commonMain { + dependencies { + implementation(projects.urlencoderLib) + } + } + jvmTest { + dependencies { + //implementation("com.willowtreeapps.assertk:assertk-jvm:0.25") + //implementation("org.junit.jupiter:junit-jupiter:5.9.1") + implementation(kotlin("test")) + } + } + } } base { @@ -47,7 +55,7 @@ application { } tasks { - jar { + jvmJar { manifest { attributes["Main-Class"] = urlEncoderMainClass } @@ -55,13 +63,13 @@ tasks { val fatJar by registering(Jar::class) { group = LifecycleBasePlugin.BUILD_GROUP - dependsOn.addAll(listOf("compileJava", "compileKotlin", "processResources")) + dependsOn.addAll(listOf("compileJava", "compileKotlinJvm", "processResources")) archiveClassifier.set("all") duplicatesStrategy = DuplicatesStrategy.EXCLUDE manifest { attributes(mapOf("Main-Class" to application.mainClass)) } from(sourceSets.main.get().output) - dependsOn(configurations.runtimeClasspath) - from(configurations.runtimeClasspath.map { classpath -> + dependsOn(configurations.jvmRuntimeClasspath) + from(configurations.jvmRuntimeClasspath.map { classpath -> classpath.incoming.artifacts.artifactFiles.files.filter { it.name.endsWith("jar") }.map { zipTree(it) } }) } @@ -70,28 +78,22 @@ tasks { dependsOn(fatJar) } - withType().configureEach { - destination = file("$projectDir/pom.xml") - } - clean { delete(deployDir) } withType().configureEach { - dokkaSourceSets { - named("main") { - moduleName.set("UrlEncoder Application") - } + dokkaSourceSets.configureEach { + moduleName.set("UrlEncoder Application") } } val copyToDeploy by registering(Sync::class) { group = PublishingPlugin.PUBLISH_TASK_GROUP - from(configurations.runtimeClasspath) { + from(configurations.jvmRuntimeClasspath) { exclude("annotations-*.jar") } - from(jar) + from(jvmJar) into(deployDir) } @@ -101,13 +103,3 @@ tasks { dependsOn(build, copyToDeploy) } } - -publishing { - publications { - create("mavenJava") { - from(components["java"]) - artifactId = rootProject.name - artifact(tasks.javadocJar) - } - } -} diff --git a/app/detekt-baseline.xml b/urlencoder-app/detekt-baseline.xml similarity index 100% rename from app/detekt-baseline.xml rename to urlencoder-app/detekt-baseline.xml diff --git a/urlencoder-app/gradle.lockfile b/urlencoder-app/gradle.lockfile new file mode 100644 index 0000000..0994a46 --- /dev/null +++ b/urlencoder-app/gradle.lockfile @@ -0,0 +1,107 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +com.beust:jcommander:1.82=detekt +com.fasterxml.jackson.core:jackson-annotations:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.jackson.core:jackson-core:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.jackson.core:jackson-databind:2.12.7.1=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.7=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.7=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +com.fasterxml.jackson.module:jackson-module-kotlin:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.jackson:jackson-bom:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.woodstox:woodstox-core:6.2.4=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +io.github.davidburstrom.contester:contester-breakpoint:0.2.0=detekt +io.github.detekt.sarif4k:sarif4k-jvm:0.4.0=detekt +io.github.detekt.sarif4k:sarif4k:0.4.0=detekt +io.gitlab.arturbosch.detekt:detekt-api:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-cli:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-core:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-metrics:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-parser:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-psi-utils:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-html:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-md:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-sarif:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-txt:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-xml:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-complexity:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-coroutines:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-documentation:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-empty:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-errorprone:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-exceptions:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-naming:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-performance:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-style:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-tooling:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-utils:1.23.0=detekt +jakarta.activation:jakarta.activation-api:1.2.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +junit:junit:4.13.2=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna:5.6.0=detekt +org.codehaus.woodstox:stax2-api:4.2.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +org.freemarker:freemarker:2.3.30=koverJvmReporter +org.freemarker:freemarker:2.3.31=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.hamcrest:hamcrest-core:1.3=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.dokka:dokka-analysis:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.dokka:dokka-base:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.dokka:dokka-core:1.8.20=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +org.jetbrains.dokka:kotlin-analysis-compiler:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.dokka:kotlin-analysis-intellij:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.intellij.deps:coverage-report:1.0.19=koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.721=koverJvmAgent,koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.721=koverJvmReporter +org.jetbrains.intellij.deps:trove4j:1.0.20200330=detekt,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-build-tools-api:1.9.0=kotlinBuildToolsApiClasspath +org.jetbrains.kotlin:kotlin-build-tools-impl:1.9.0=kotlinBuildToolsApiClasspath +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.21=detekt +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.8.21=detekt +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.0=kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-reflect:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-reflect:1.8.21=detekt +org.jetbrains.kotlin:kotlin-script-runtime:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-script-runtime:1.9.0=kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-scripting-common:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-scripting-common:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain,metadataCommonMainCompileClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.9.0=allSourceSetsCompileDependenciesMetadata,commonMainApiDependenciesMetadata,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationDependenciesMetadata,commonMainResolvableDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmMainResolvableDependenciesMetadata,jvmTestResolvableDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,metadataCompileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21=detekt +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21=detekt +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-stdlib:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-stdlib:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-test-annotations-common:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestResolvableDependenciesMetadata +org.jetbrains.kotlin:kotlin-test-common:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestResolvableDependenciesMetadata +org.jetbrains.kotlin:kotlin-test-junit:1.9.0=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-test:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.5=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.1=detekt +org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.1=detekt +org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1=detekt +org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1=detekt +org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1=detekt +org.jetbrains:annotations:13.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,detekt,dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains:annotations:16.0.2=koverJvmReporter +org.jetbrains:markdown-jvm:0.3.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +org.jetbrains:markdown:0.3.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +org.jsoup:jsoup:1.15.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.snakeyaml:snakeyaml-engine:2.6=detekt +empty=annotationProcessor,commonMainIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,detektPlugins,dokkaPlugin,dokkaRuntime,jvmMainIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,koverExternalArtifacts,signatures,testAnnotationProcessor,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/app/src/main/kotlin/net/thauvin/erik/urlencoder/UrlEncoder.kt b/urlencoder-app/src/jvmMain/kotlin/net/thauvin/erik/urlencoder/UrlEncoder.kt similarity index 100% rename from app/src/main/kotlin/net/thauvin/erik/urlencoder/UrlEncoder.kt rename to urlencoder-app/src/jvmMain/kotlin/net/thauvin/erik/urlencoder/UrlEncoder.kt diff --git a/app/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderTest.kt b/urlencoder-app/src/jvmTest/kotlin/net/thauvin/erik/urlencoder/UrlEncoderTest.kt similarity index 100% rename from app/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderTest.kt rename to urlencoder-app/src/jvmTest/kotlin/net/thauvin/erik/urlencoder/UrlEncoderTest.kt diff --git a/lib/build.gradle.kts b/urlencoder-lib/build.gradle.kts similarity index 70% rename from lib/build.gradle.kts rename to urlencoder-lib/build.gradle.kts index ba01500..8675d8c 100644 --- a/lib/build.gradle.kts +++ b/urlencoder-lib/build.gradle.kts @@ -18,7 +18,7 @@ import org.jetbrains.dokka.gradle.DokkaTask plugins { - buildsrc.conventions.lang.`kotlin-jvm` + buildsrc.conventions.lang.`kotlin-multiplatform-jvm` buildsrc.conventions.publishing id("com.github.ben-manes.versions") } @@ -27,30 +27,32 @@ description = "A simple defensive library to encode/decode URL components" val deployDir = project.layout.projectDirectory.dir("deploy") -dependencies { -// testImplementation("com.willowtreeapps.assertk:assertk-jvm:0.25") -// testImplementation("org.junit.jupiter:junit-jupiter:5.9.1") - testImplementation(kotlin("test")) +kotlin { + sourceSets { + jvmTest { + dependencies { + //implementation("com.willowtreeapps.assertk:assertk-jvm:0.25") + //implementation("org.junit.jupiter:junit-jupiter:5.9.1") + implementation(kotlin("test")) + } + } + } } + base { archivesName.set("${rootProject.name}-lib") } tasks { - withType().configureEach { - destination = file("$projectDir/pom.xml") - } clean { delete(deployDir) } withType().configureEach { - dokkaSourceSets { - named("main") { - moduleName.set("UrlEncoder Library") - } + dokkaSourceSets.configureEach { + moduleName.set("UrlEncoder Library") } } @@ -59,7 +61,7 @@ tasks { from(configurations.runtimeClasspath) { exclude("annotations-*.jar") } - from(jar) + from(jvmJar) into(deployDir) } @@ -69,13 +71,3 @@ tasks { dependsOn(build, copyToDeploy) } } - -publishing { - publications { - create("mavenJava") { - from(components["java"]) - artifactId = "${rootProject.name}-lib" - artifact(tasks.javadocJar) - } - } -} diff --git a/lib/detekt-baseline.xml b/urlencoder-lib/detekt-baseline.xml similarity index 100% rename from lib/detekt-baseline.xml rename to urlencoder-lib/detekt-baseline.xml diff --git a/urlencoder-lib/gradle.lockfile b/urlencoder-lib/gradle.lockfile new file mode 100644 index 0000000..0994a46 --- /dev/null +++ b/urlencoder-lib/gradle.lockfile @@ -0,0 +1,107 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +com.beust:jcommander:1.82=detekt +com.fasterxml.jackson.core:jackson-annotations:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.jackson.core:jackson-core:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.jackson.core:jackson-databind:2.12.7.1=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.12.7=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.7=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +com.fasterxml.jackson.module:jackson-module-kotlin:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.jackson:jackson-bom:2.12.7=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +com.fasterxml.woodstox:woodstox-core:6.2.4=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +io.github.davidburstrom.contester:contester-breakpoint:0.2.0=detekt +io.github.detekt.sarif4k:sarif4k-jvm:0.4.0=detekt +io.github.detekt.sarif4k:sarif4k:0.4.0=detekt +io.gitlab.arturbosch.detekt:detekt-api:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-cli:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-core:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-metrics:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-parser:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-psi-utils:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-html:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-md:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-sarif:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-txt:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-report-xml:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-complexity:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-coroutines:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-documentation:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-empty:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-errorprone:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-exceptions:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-naming:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-performance:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules-style:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-rules:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-tooling:1.23.0=detekt +io.gitlab.arturbosch.detekt:detekt-utils:1.23.0=detekt +jakarta.activation:jakarta.activation-api:1.2.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +junit:junit:4.13.2=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna:5.6.0=detekt +org.codehaus.woodstox:stax2-api:4.2.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +org.freemarker:freemarker:2.3.30=koverJvmReporter +org.freemarker:freemarker:2.3.31=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.hamcrest:hamcrest-core:1.3=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.dokka:dokka-analysis:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.dokka:dokka-base:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.dokka:dokka-core:1.8.20=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +org.jetbrains.dokka:kotlin-analysis-compiler:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.dokka:kotlin-analysis-intellij:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.intellij.deps:coverage-report:1.0.19=koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-agent:1.0.721=koverJvmAgent,koverJvmReporter +org.jetbrains.intellij.deps:intellij-coverage-reporter:1.0.721=koverJvmReporter +org.jetbrains.intellij.deps:trove4j:1.0.20200330=detekt,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-build-tools-api:1.9.0=kotlinBuildToolsApiClasspath +org.jetbrains.kotlin:kotlin-build-tools-impl:1.9.0=kotlinBuildToolsApiClasspath +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.21=detekt +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.8.21=detekt +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.0=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.0=kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-reflect:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-reflect:1.8.21=detekt +org.jetbrains.kotlin:kotlin-script-runtime:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-script-runtime:1.9.0=kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-scripting-common:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-scripting-common:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.21=kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.0=kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain,metadataCommonMainCompileClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.9.0=allSourceSetsCompileDependenciesMetadata,commonMainApiDependenciesMetadata,commonMainCompileOnlyDependenciesMetadata,commonMainImplementationDependenciesMetadata,commonMainResolvableDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmMainResolvableDependenciesMetadata,jvmTestResolvableDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,metadataCompileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.21=detekt +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21=detekt +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.8.20=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlin:kotlin-stdlib:1.8.21=detekt,kotlinCompilerPluginClasspathMetadataCommonMain +org.jetbrains.kotlin:kotlin-stdlib:1.9.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-test-annotations-common:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestResolvableDependenciesMetadata +org.jetbrains.kotlin:kotlin-test-common:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestResolvableDependenciesMetadata +org.jetbrains.kotlin:kotlin-test-junit:1.9.0=jvmTestCompileClasspath,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-test:1.9.0=allSourceSetsCompileDependenciesMetadata,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.5=dokkaGfmPartialPlugin,dokkaGfmPlugin,dokkaHtmlPartialPlugin,dokkaHtmlPlugin,dokkaJavadocPartialPlugin,dokkaJavadocPlugin,dokkaJekyllPartialPlugin,dokkaJekyllPlugin +org.jetbrains.kotlinx:kotlinx-html-jvm:0.8.1=detekt +org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.1=detekt +org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1=detekt +org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1=detekt +org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1=detekt +org.jetbrains:annotations:13.0=allSourceSetsCompileDependenciesMetadata,commonTestApiDependenciesMetadata,commonTestCompileOnlyDependenciesMetadata,commonTestImplementationDependenciesMetadata,commonTestResolvableDependenciesMetadata,compileClasspath,detekt,dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime,jvmCompileClasspath,jvmMainApiDependenciesMetadata,jvmMainCompileOnlyDependenciesMetadata,jvmMainImplementationDependenciesMetadata,jvmMainResolvableDependenciesMetadata,jvmRuntimeClasspath,jvmTestApiDependenciesMetadata,jvmTestCompileClasspath,jvmTestCompileOnlyDependenciesMetadata,jvmTestImplementationDependenciesMetadata,jvmTestResolvableDependenciesMetadata,jvmTestRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJvmMain,kotlinCompilerPluginClasspathJvmTest,kotlinCompilerPluginClasspathMetadataCommonMain,kotlinCompilerPluginClasspathMetadataMain,kotlinKlibCommonizerClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains:annotations:16.0.2=koverJvmReporter +org.jetbrains:markdown-jvm:0.3.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +org.jetbrains:markdown:0.3.1=dokkaGfmPartialRuntime,dokkaGfmRuntime,dokkaHtmlPartialRuntime,dokkaHtmlRuntime,dokkaJavadocPartialRuntime,dokkaJavadocRuntime,dokkaJekyllPartialRuntime,dokkaJekyllRuntime +org.jsoup:jsoup:1.15.3=dokkaGfmPartialPlugin,dokkaGfmPartialRuntime,dokkaGfmPlugin,dokkaGfmRuntime,dokkaHtmlPartialPlugin,dokkaHtmlPartialRuntime,dokkaHtmlPlugin,dokkaHtmlRuntime,dokkaJavadocPartialPlugin,dokkaJavadocPartialRuntime,dokkaJavadocPlugin,dokkaJavadocRuntime,dokkaJekyllPartialPlugin,dokkaJekyllPartialRuntime,dokkaJekyllPlugin,dokkaJekyllRuntime +org.snakeyaml:snakeyaml-engine:2.6=detekt +empty=annotationProcessor,commonMainIntransitiveDependenciesMetadata,commonTestIntransitiveDependenciesMetadata,detektPlugins,dokkaPlugin,dokkaRuntime,jvmMainIntransitiveDependenciesMetadata,jvmTestIntransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,koverExternalArtifacts,signatures,testAnnotationProcessor,testKotlinScriptDef,testKotlinScriptDefExtensions diff --git a/lib/src/main/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtil.kt b/urlencoder-lib/src/jvmMain/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtil.kt similarity index 100% rename from lib/src/main/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtil.kt rename to urlencoder-lib/src/jvmMain/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtil.kt diff --git a/lib/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt b/urlencoder-lib/src/jvmTest/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt similarity index 100% rename from lib/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt rename to urlencoder-lib/src/jvmTest/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt