Merge pull request #49 from siujamo/main

This commit is contained in:
Zihlu Wang
2025-03-21 11:23:59 +08:00
committed by GitHub
22 changed files with 539 additions and 107 deletions
-41
View File
@@ -14,44 +14,3 @@
* 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<Jar> {
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<JavaCompile> {
options.encoding = "UTF-8"
}
}
+46
View File
@@ -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 `<dependencyManagement>`:
```xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.onixbyte</groupId>
<artifactId>devkit-bom</artifactId>
<version>${devkit-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
```
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")
}
```
+109
View File
@@ -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<MavenPublication>("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()
}
}
}
}
}
+31 -1
View File
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}
+30 -3
View File
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}
+6 -6
View File
@@ -15,6 +15,12 @@
# 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
@@ -22,9 +28,3 @@ 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
+30 -3
View File
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}
+30 -3
View File
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}
+30 -3
View File
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}
+30 -3
View File
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}
+2 -1
View File
@@ -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"
)
+38 -11
View File
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}
+33 -5
View File
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}
@@ -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
group = "com.onixbyte"
version = artefactVersion
repositories {
mavenCentral()
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
withSourcesJar()
withJavadocJar()
}
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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
group = "com.onixbyte"
version = artefactVersion
compileOnly("org.slf4j:slf4j-api:$slf4jVersion")
implementation("ch.qos.logback:logback-classic:$logbackVersion")
dependencies {
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")
}
@@ -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<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
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()
}