Skip to content

Commit 4e4ecb7

Browse files
committed
Migrated build to gradle
1 parent dd234e8 commit 4e4ecb7

11 files changed

Lines changed: 508 additions & 212 deletions

File tree

.github/workflows/gradle.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Java CI with Gradle
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
jobs:
10+
build:
11+
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
- name: Set up JDK 21
17+
uses: actions/setup-java@v4
18+
with:
19+
java-version: '21'
20+
distribution: 'temurin'
21+
- name: Setup Gradle
22+
uses: gradle/actions/setup-gradle@v4
23+
- name: Run tests
24+
run: ./gradlew test
25+
- name: Publish package
26+
run: ./gradlew publish
27+
env:
28+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29+

.github/workflows/maven.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

build.gradle.kts

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
plugins {
2+
alias(libs.plugins.kotlin.jvm)
3+
`java-library`
4+
`maven-publish`
5+
}
6+
7+
group = "eu.qwsome"
8+
version = "1.0.0-SNAPSHOT"
9+
description = "The raw sql builder"
10+
11+
java {
12+
toolchain {
13+
languageVersion.set(JavaLanguageVersion.of(21))
14+
}
15+
withSourcesJar()
16+
withJavadocJar()
17+
}
18+
19+
kotlin {
20+
jvmToolchain(21)
21+
}
22+
23+
repositories {
24+
mavenCentral()
25+
}
26+
27+
dependencies {
28+
implementation(libs.kotlin.stdlib)
29+
30+
testImplementation(libs.junit.jupiter)
31+
testImplementation(libs.assertj.core)
32+
testImplementation(libs.jmh.core)
33+
testAnnotationProcessor(libs.jmh.processor)
34+
}
35+
36+
sourceSets {
37+
main {
38+
kotlin.srcDirs("src/main/kotlin", "src/main/java")
39+
java.srcDirs("src/main/java")
40+
}
41+
test {
42+
kotlin.srcDirs("src/test/kotlin", "src/test/java")
43+
java.srcDirs("src/test/java")
44+
}
45+
}
46+
47+
tasks.test {
48+
useJUnitPlatform()
49+
}
50+
51+
// Configure Kotlin compilation to happen after Java compilation
52+
tasks.compileKotlin {
53+
compilerOptions {
54+
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
55+
}
56+
}
57+
58+
tasks.compileTestKotlin {
59+
compilerOptions {
60+
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
61+
}
62+
}
63+
64+
publishing {
65+
publications {
66+
create<MavenPublication>("maven") {
67+
from(components["java"])
68+
69+
pom {
70+
name.set("The raw sql builder")
71+
description.set("A lightweight SQL query builder library for Java that provides a fluent API for constructing SQL/JPQL/HQL queries")
72+
url.set("https://github.com/sgflt/sqlbuilder")
73+
74+
scm {
75+
url.set("https://github.com/sgflt/sqlbuilder.git")
76+
tag.set("HEAD")
77+
}
78+
79+
issueManagement {
80+
system.set("GitHub")
81+
url.set("https://github.com/sgflt/sqlbuilder/issues")
82+
}
83+
84+
licenses {
85+
license {
86+
name.set("Apache License, Version 2.0")
87+
url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
88+
distribution.set("repo")
89+
}
90+
}
91+
92+
developers {
93+
developer {
94+
name.set("Lukáš Kvídera")
95+
email.set("kvideral@qwsome.eu")
96+
timezone.set("CET")
97+
}
98+
}
99+
}
100+
}
101+
}
102+
103+
repositories {
104+
maven {
105+
name = "GitHubPackages"
106+
url = uri("https://maven.pkg.github.com/sgflt/sqlbuilder")
107+
credentials {
108+
username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
109+
password = project.findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN")
110+
}
111+
}
112+
}
113+
}

gradle.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
2+
org.gradle.parallel=true
3+
org.gradle.caching=true
4+
5+
kotlin.code.style=official

gradle/libs.versions.toml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[versions]
2+
kotlin = "2.2.0"
3+
junit = "5.9.0"
4+
assertj = "3.23.1"
5+
jmh = "1.35"
6+
7+
[libraries]
8+
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
9+
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" }
10+
assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj" }
11+
jmh-core = { module = "org.openjdk.jmh:jmh-core", version.ref = "jmh" }
12+
jmh-processor = { module = "org.openjdk.jmh:jmh-generator-annprocess", version.ref = "jmh" }
13+
14+
[plugins]
15+
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }

gradle/wrapper/gradle-wrapper.jar

42.7 KB
Binary file not shown.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
6+
zipStoreBase=GRADLE_USER_HOME
7+
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)