diff --git a/build.gradle.kts b/build.gradle.kts index 266e688..b76a169 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,45 +13,4 @@ * * See the License for the specific language governing permissions and * limitations under the License. - */ - -val logbackVersion: String by project -val junitVersion: String by project -val slf4jVersion: String by project -val lombokVersion: String by project - -subprojects { - apply(plugin = "java") - apply(plugin = "java-library") - apply(plugin = "maven-publish") - apply(plugin = "signing") - - val implementation by configurations - val testImplementation by configurations - val compileOnly by configurations - val annotationProcessor by configurations - val testAnnotationProcessor by configurations - val testCompileOnly by configurations - - tasks.withType { - exclude("logback.xml") - } - - repositories { - mavenCentral() - } - - dependencies { - compileOnly("org.slf4j:slf4j-api:$slf4jVersion") - implementation("ch.qos.logback:logback-classic:$logbackVersion") - annotationProcessor("org.slf4j:slf4j-api:$slf4jVersion") - - testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") - testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") - testAnnotationProcessor("org.slf4j:slf4j-api:$slf4jVersion") - } - - tasks.withType { - options.encoding = "UTF-8" - } -} \ No newline at end of file + */ \ No newline at end of file diff --git a/devkit-bom/README.md b/devkit-bom/README.md new file mode 100644 index 0000000..5cfbbb6 --- /dev/null +++ b/devkit-bom/README.md @@ -0,0 +1,46 @@ +# DevKit BOM + +The devkit-bom (Bill of Materials) is a Maven POM file provided by OnixByte to manage dependency versions for the DevKit suite of libraries. By incorporating this BOM into your build configuration, you can ensure consistent versioning across all included dependencies without needing to specify versions explicitly in your project files. Published with Gradle metadata, this BOM supports both Maven and Gradle projects, and this document outlines how to integrate and use it effectively in both ecosystems. + +## Using in Maven + +Add the `devkit-bom` to your `pom.xml` under ``: + +```xml + + + + com.onixbyte + devkit-bom + ${devkit-version} + pom + import + + + +``` + +Then reference dependencies like `devkit-core` without a version. + +## Using in Gradle + +In your `build.gradle[.kts]`, apply the BOM using the `platform` dependency: + +```groovy +dependencies { + implementation platform('com.onixbyte:devkit-bom:2.0.0') + implementation 'com.onixbyte:devkit-core' + implementation 'com.onixbyte:devkit-utils' +} +``` + +If you are using Kotlin DSL: + +```kotlin +dependencies { + implementation(platform("com.onixbyte:devkit-bom:2.0.0")) + implementation("com.onixbyte:devkit-core") + implementation("com.onixbyte:devkit-utils") +} +``` + diff --git a/devkit-bom/build.gradle.kts b/devkit-bom/build.gradle.kts new file mode 100644 index 0000000..68fab50 --- /dev/null +++ b/devkit-bom/build.gradle.kts @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2024-2025 OnixByte. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.net.URI + +plugins { + id("java-platform") + id("maven-publish") + id("signing") +} + +val artefactVersion: String by project +val projectUrl: String by project +val projectGithubUrl: String by project +val licenseName: String by project +val licenseUrl: String by project + +group = "com.onixbyte" +version = artefactVersion + +repositories { + mavenCentral() +} + +dependencies { + constraints { + api("com.onixbyte:devkit-core:$artefactVersion") + api("com.onixbyte:devkit-utils:$artefactVersion") + api("com.onixbyte:guid:$artefactVersion") + api("com.onixbyte:key-pair-loader:$artefactVersion") + api("com.onixbyte:map-util-unsafe:$artefactVersion") + api("com.onixbyte:num4j:$artefactVersion") + api("com.onixbyte:simple-jwt-facade:$artefactVersion") + api("com.onixbyte:simple-jwt-authzero:$artefactVersion") + api("com.onixbyte:simple-jwt-spring-boot-starter:$artefactVersion") + api("com.onixbyte:property-guard-spring-boot-starter:$artefactVersion") + api("com.onixbyte:simple-serial-spring-boot-starter:$artefactVersion") + } +} + +publishing { + publications { + create("devkitBom") { + groupId = group.toString() + artifactId = "devkit-bom" + version = artefactVersion + + pom { + name = "DevKit BOM" + description = "Using BOM could use unified OnixByte JDevKit." + url = projectUrl + + licenses { + license { + name = licenseName + url = licenseUrl + } + } + + scm { + connection = "scm:git:git://github.com:OnixByte/devkit-bom.git" + developerConnection = "scm:git:git://github.com:OnixByte/devkit-bom.git" + url = projectGithubUrl + } + + developers { + developer { + id = "zihluwang" + name = "Zihlu Wang" + email = "zihlu.wang@onixbyte.com" + timezone = "Asia/Hong_Kong" + } + } + } + + print(components) + + from(components["javaPlatform"]) + + signing { + sign(publishing.publications["devkitBom"]) + } + } + + repositories { + maven { + name = "sonatypeNexus" + url = URI(providers.gradleProperty("repo.maven-central.host").get()) + credentials { + username = providers.gradleProperty("repo.maven-central.username").get() + password = providers.gradleProperty("repo.maven-central.password").get() + } + } + } + } +} \ No newline at end of file diff --git a/devkit-core/build.gradle.kts b/devkit-core/build.gradle.kts index 70c87a2..f71a423 100644 --- a/devkit-core/build.gradle.kts +++ b/devkit-core/build.gradle.kts @@ -14,9 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project @@ -26,6 +32,10 @@ val licenseUrl: String by project group = "com.onixbyte" version = artefactVersion +repositories { + mavenCentral() +} + java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 @@ -33,6 +43,26 @@ java { withJavadocJar() } +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + +dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") +} + tasks.test { useJUnitPlatform() } diff --git a/devkit-utils/build.gradle.kts b/devkit-utils/build.gradle.kts index 0a8fd0f..190d2e4 100644 --- a/devkit-utils/build.gradle.kts +++ b/devkit-utils/build.gradle.kts @@ -14,9 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project @@ -26,8 +32,8 @@ val licenseUrl: String by project group = "com.onixbyte" version = artefactVersion -dependencies { - implementation(project(":devkit-core")) +repositories { + mavenCentral() } java { @@ -37,6 +43,27 @@ java { withJavadocJar() } +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + +dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + implementation(project(":devkit-core")) + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") +} + tasks.test { useJUnitPlatform() } diff --git a/gradle.properties b/gradle.properties index 85f12ee..b508e98 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,16 +15,16 @@ # limitations under the License. # +artefactVersion=2.0.0 +projectUrl=https://onixbyte.com/JDevKit +projectGithubUrl=https://github.com/OnixByte/JDevKit +licenseName=The Apache License, Version 2.0 +licenseUrl=https://www.apache.org/licenses/LICENSE-2.0.txt + jacksonVersion=2.18.2 javaJwtVersion=4.4.0 junitVersion=5.11.4 logbackVersion=1.5.16 slf4jVersion=2.0.16 springVersion=6.2.2 -springBootVersion=3.4.2 - -artefactVersion=2.0.0 -projectUrl=https://onixbyte.com/JDevKit -projectGithubUrl=https://github.com/OnixByte/JDevKit -licenseName=The Apache License, Version 2.0 -licenseUrl=https://www.apache.org/licenses/LICENSE-2.0.txt \ No newline at end of file +springBootVersion=3.4.2 \ No newline at end of file diff --git a/guid/build.gradle.kts b/guid/build.gradle.kts index ccae9fb..84cda10 100644 --- a/guid/build.gradle.kts +++ b/guid/build.gradle.kts @@ -14,9 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project @@ -26,8 +32,8 @@ val licenseUrl: String by project group = "com.onixbyte" version = artefactVersion -dependencies { - implementation(project(":devkit-core")) +repositories { + mavenCentral() } java { @@ -37,6 +43,27 @@ java { withJavadocJar() } +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + +dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + implementation(project(":devkit-core")) + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") +} + tasks.test { useJUnitPlatform() } diff --git a/key-pair-loader/build.gradle.kts b/key-pair-loader/build.gradle.kts index 9c53390..22e769c 100644 --- a/key-pair-loader/build.gradle.kts +++ b/key-pair-loader/build.gradle.kts @@ -14,9 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project @@ -26,8 +32,8 @@ val licenseUrl: String by project group = "com.onixbyte" version = artefactVersion -dependencies { - implementation(project(":devkit-core")) +repositories { + mavenCentral() } java { @@ -37,6 +43,27 @@ java { withJavadocJar() } +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + +dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + implementation(project(":devkit-core")) + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") +} + tasks.test { useJUnitPlatform() } diff --git a/map-util-unsafe/build.gradle.kts b/map-util-unsafe/build.gradle.kts index c3433c9..7d46c88 100644 --- a/map-util-unsafe/build.gradle.kts +++ b/map-util-unsafe/build.gradle.kts @@ -14,9 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project @@ -26,8 +32,8 @@ val licenseUrl: String by project group = "com.onixbyte" version = artefactVersion -dependencies { - implementation(project(":devkit-core")) +repositories { + mavenCentral() } java { @@ -37,6 +43,27 @@ java { withJavadocJar() } +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + +dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + implementation(project(":devkit-core")) + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") +} + tasks.test { useJUnitPlatform() } diff --git a/num4j/build.gradle.kts b/num4j/build.gradle.kts index 977c683..60c0bd2 100644 --- a/num4j/build.gradle.kts +++ b/num4j/build.gradle.kts @@ -14,9 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project @@ -26,8 +32,8 @@ val licenseUrl: String by project group = "com.onixbyte" version = artefactVersion -dependencies { - implementation(project(":devkit-core")) +repositories { + mavenCentral() } java { @@ -37,6 +43,27 @@ java { withJavadocJar() } +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + +dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + implementation(project(":devkit-core")) + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") +} + tasks.test { useJUnitPlatform() } diff --git a/property-guard-spring-boot-starter/build.gradle.kts b/property-guard-spring-boot-starter/build.gradle.kts index 33214a5..8db0a5e 100644 --- a/property-guard-spring-boot-starter/build.gradle.kts +++ b/property-guard-spring-boot-starter/build.gradle.kts @@ -14,26 +14,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project val licenseName: String by project val licenseUrl: String by project -val springBootVersion: String by project - group = "com.onixbyte" version = artefactVersion -dependencies { - implementation(project(":devkit-utils")) - implementation("org.springframework.boot:spring-boot-autoconfigure:$springBootVersion") - implementation("org.springframework.boot:spring-boot-starter-logging:$springBootVersion") - implementation("org.springframework.boot:spring-boot-configuration-processor:$springBootVersion") - testImplementation("org.springframework.boot:spring-boot-starter-test:$springBootVersion") +repositories { + mavenCentral() } java { @@ -43,6 +43,33 @@ java { withJavadocJar() } +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + +dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + val springBootVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + implementation(project(":devkit-core")) + implementation(project(":devkit-utils")) + implementation("org.springframework.boot:spring-boot-autoconfigure:$springBootVersion") + implementation("org.springframework.boot:spring-boot-starter-logging:$springBootVersion") + implementation("org.springframework.boot:spring-boot-configuration-processor:$springBootVersion") + + testImplementation("org.springframework.boot:spring-boot-starter-test:$springBootVersion") + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") +} + tasks.test { useJUnitPlatform() } diff --git a/settings.gradle.kts b/settings.gradle.kts index 084a020..794f015 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -18,6 +18,7 @@ rootProject.name = "JDevKit" include( + "devkit-bom", "devkit-core", "devkit-utils", "guid", @@ -28,5 +29,5 @@ include( "simple-jwt-authzero", "simple-jwt-spring-boot-starter", "property-guard-spring-boot-starter", - "simple-serial" + "simple-serial-spring-boot-starter" ) diff --git a/simple-jwt-authzero/build.gradle.kts b/simple-jwt-authzero/build.gradle.kts index 20686b2..0a9e4a0 100644 --- a/simple-jwt-authzero/build.gradle.kts +++ b/simple-jwt-authzero/build.gradle.kts @@ -14,28 +14,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project val licenseName: String by project val licenseUrl: String by project -val jacksonVersion: String by project -val javaJwtVersion: String by project - group = "com.onixbyte" version = artefactVersion -dependencies { - implementation(project(":devkit-utils")) - implementation(project(":guid")) - implementation(project(":key-pair-loader")) - implementation(project(":simple-jwt-facade")) - implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") - implementation("com.auth0:java-jwt:$javaJwtVersion") +repositories { + mavenCentral() } java { @@ -45,6 +43,35 @@ java { withJavadocJar() } +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + +dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + val jacksonVersion: String by project + val javaJwtVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + + implementation(project(":devkit-utils")) + implementation(project(":guid")) + implementation(project(":key-pair-loader")) + implementation(project(":simple-jwt-facade")) + implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") + implementation("com.auth0:java-jwt:$javaJwtVersion") + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") +} + tasks.test { useJUnitPlatform() } diff --git a/simple-jwt-facade/build.gradle.kts b/simple-jwt-facade/build.gradle.kts index 772d72e..147d9fd 100644 --- a/simple-jwt-facade/build.gradle.kts +++ b/simple-jwt-facade/build.gradle.kts @@ -14,9 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project @@ -26,10 +32,8 @@ val licenseUrl: String by project group = "com.onixbyte" version = artefactVersion -dependencies { - implementation(project(":devkit-core")) - implementation(project(":devkit-utils")) - implementation(project(":guid")) +repositories { + mavenCentral() } java { @@ -39,6 +43,30 @@ java { withJavadocJar() } +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + +dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + + implementation(project(":devkit-core")) + implementation(project(":devkit-utils")) + implementation(project(":guid")) + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") +} + tasks.test { useJUnitPlatform() } diff --git a/simple-jwt-spring-boot-starter/build.gradle.kts b/simple-jwt-spring-boot-starter/build.gradle.kts index 753c3e1..5e9a94d 100644 --- a/simple-jwt-spring-boot-starter/build.gradle.kts +++ b/simple-jwt-spring-boot-starter/build.gradle.kts @@ -14,23 +14,54 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import java.net.URI +plugins { + java + id("java-library") + id("maven-publish") + id("signing") +} + val artefactVersion: String by project val projectUrl: String by project val projectGithubUrl: String by project val licenseName: String by project val licenseUrl: String by project -val javaJwtVersion: String by project -val jacksonVersion: String by project -val springBootVersion: String by project - group = "com.onixbyte" version = artefactVersion +repositories { + mavenCentral() +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + withSourcesJar() + withJavadocJar() +} + +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + val javaJwtVersion: String by project + val jacksonVersion: String by project + val springBootVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + implementation(project(":guid")) implementation(project(":simple-jwt-facade")) compileOnly("com.auth0:java-jwt:$javaJwtVersion") @@ -40,6 +71,9 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-logging:$springBootVersion") implementation("org.springframework.boot:spring-boot-configuration-processor:$springBootVersion") annotationProcessor("org.springframework.boot:spring-boot-configuration-processor:$springBootVersion") + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") testImplementation("org.springframework.boot:spring-boot-starter-test:$springBootVersion") } diff --git a/simple-serial/README.md b/simple-serial-spring-boot-starter/README.md similarity index 100% rename from simple-serial/README.md rename to simple-serial-spring-boot-starter/README.md diff --git a/simple-serial/build.gradle.kts b/simple-serial-spring-boot-starter/build.gradle.kts similarity index 70% rename from simple-serial/build.gradle.kts rename to simple-serial-spring-boot-starter/build.gradle.kts index 36f1eda..a2e1961 100644 --- a/simple-serial/build.gradle.kts +++ b/simple-serial-spring-boot-starter/build.gradle.kts @@ -1,7 +1,26 @@ +/* + * Copyright (C) 2024-2025 OnixByte. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + * See the License for the specific language governing permissions and + * limitations under the License. + */ import java.net.URI plugins { - id("java") + java + id("java-library") + id("maven-publish") + id("signing") } val artefactVersion: String by project @@ -10,9 +29,6 @@ val projectGithubUrl: String by project val licenseName: String by project val licenseUrl: String by project -val jacksonVersion: String by project -val springBootVersion: String by project - group = "com.onixbyte" version = artefactVersion @@ -20,25 +36,45 @@ repositories { mavenCentral() } +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + withSourcesJar() + withJavadocJar() +} + +tasks.withType { + options.encoding = "UTF-8" +} + +tasks.withType { + exclude("logback.xml") +} + dependencies { + val slf4jVersion: String by project + val logbackVersion: String by project + val junitVersion: String by project + val jacksonVersion: String by project + val springBootVersion: String by project + + compileOnly("org.slf4j:slf4j-api:$slf4jVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") implementation("org.springframework.boot:spring-boot-autoconfigure:$springBootVersion") implementation("org.springframework.boot:spring-boot-starter-logging:$springBootVersion") implementation("org.springframework.boot:spring-boot-configuration-processor:$springBootVersion") implementation("org.springframework.boot:spring-boot-starter-data-redis:$springBootVersion") annotationProcessor("org.springframework.boot:spring-boot-configuration-processor:$springBootVersion") + + testCompileOnly("org.slf4j:slf4j-api:$slf4jVersion") + testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") testImplementation("org.springframework.boot:spring-boot-starter-test:$springBootVersion") testImplementation(platform("org.junit:junit-bom:5.10.0")) testImplementation("org.junit.jupiter:junit-jupiter") } -java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - withSourcesJar() - withJavadocJar() -} - tasks.test { useJUnitPlatform() } diff --git a/simple-serial/src/main/java/com/onixbyte/serial/RedisConfig.java b/simple-serial-spring-boot-starter/src/main/java/com/onixbyte/serial/RedisConfig.java similarity index 100% rename from simple-serial/src/main/java/com/onixbyte/serial/RedisConfig.java rename to simple-serial-spring-boot-starter/src/main/java/com/onixbyte/serial/RedisConfig.java diff --git a/simple-serial/src/main/java/com/onixbyte/serial/SerialService.java b/simple-serial-spring-boot-starter/src/main/java/com/onixbyte/serial/SerialService.java similarity index 100% rename from simple-serial/src/main/java/com/onixbyte/serial/SerialService.java rename to simple-serial-spring-boot-starter/src/main/java/com/onixbyte/serial/SerialService.java diff --git a/simple-serial/src/main/java/com/onixbyte/serial/properties/SerialProperties.java b/simple-serial-spring-boot-starter/src/main/java/com/onixbyte/serial/properties/SerialProperties.java similarity index 100% rename from simple-serial/src/main/java/com/onixbyte/serial/properties/SerialProperties.java rename to simple-serial-spring-boot-starter/src/main/java/com/onixbyte/serial/properties/SerialProperties.java diff --git a/simple-serial/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/simple-serial-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from simple-serial/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to simple-serial-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/simple-serial/src/main/resources/logback.xml b/simple-serial-spring-boot-starter/src/main/resources/logback.xml similarity index 100% rename from simple-serial/src/main/resources/logback.xml rename to simple-serial-spring-boot-starter/src/main/resources/logback.xml