Skip to content

Commit 4d2edd9

Browse files
authored
feat: gradle migration (#1)
Migrates from maven build system to gradle --------- Signed-off-by: Rajdeep Roy Chowdhury <rrajdeeproychowdhury@gmail.com>
1 parent 826b1d7 commit 4d2edd9

18 files changed

Lines changed: 521 additions & 642 deletions

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* text=auto eol=lf

.github/workflows/build-image.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ name: Build Image
33
on:
44
push:
55
branches: [ main ]
6-
pull_request:
7-
branches: [ main ]
86

97
env:
108
PORT: 8080

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,5 @@ build/
3131

3232
### VS Code ###
3333
.vscode/
34+
35+
.gradle

.mvn/wrapper/maven-wrapper.jar

-57.4 KB
Binary file not shown.

.mvn/wrapper/maven-wrapper.properties

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

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ RUN mkdir /src
44

55
WORKDIR /src
66
COPY . .
7-
RUN ./mvnw clean package
7+
RUN chmod +x gradlew && ./gradlew clean build
88

99
# ----------------------------------------------
1010

@@ -19,6 +19,6 @@ USER nonroot
1919

2020
WORKDIR /home/nonroot/app
2121

22-
COPY --from=builder /src/target/konsign-api-0.0.1-SNAPSHOT.jar /home/nonroot/app
22+
COPY --from=builder /src/build/libs/konsign-api-0.0.1-SNAPSHOT.jar /home/nonroot/app
2323

2424
CMD ["java", "-Dspring.profiles.actives=dev", "-jar", "konsign-api-0.0.1-SNAPSHOT.jar"]

build.gradle.kts

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
plugins {
2+
id("org.springframework.boot") version "2.7.4"
3+
id("io.spring.dependency-management") version "1.1.6"
4+
kotlin("jvm") version "1.9.24" apply false // remove if not using Kotlin code
5+
id("java")
6+
}
7+
8+
group = "com.razdeep"
9+
version = "0.0.1-SNAPSHOT"
10+
description = "konsign-api"
11+
12+
java {
13+
toolchain {
14+
languageVersion.set(JavaLanguageVersion.of(17))
15+
}
16+
}
17+
18+
repositories {
19+
mavenCentral()
20+
}
21+
22+
dependencies {
23+
implementation(libs.spring.boot.starter.web)
24+
implementation(libs.spring.boot.starter.security)
25+
implementation(libs.jjwt)
26+
implementation(libs.jaxb.api)
27+
implementation(libs.spring.boot.starter.data.jpa)
28+
implementation(libs.mysql.connector)
29+
implementation(libs.gson)
30+
31+
compileOnly(libs.lombok)
32+
annotationProcessor(libs.lombok)
33+
34+
implementation(libs.mapstruct)
35+
annotationProcessor(libs.mapstruct.processor)
36+
37+
implementation(libs.spring.boot.starter.actuator)
38+
implementation(libs.springdoc.openapi.ui)
39+
40+
implementation(libs.spring.boot.starter.data.redis)
41+
implementation(libs.jedis)
42+
implementation(libs.spring.boot.starter.cache)
43+
implementation(libs.jackson.jsr310)
44+
45+
runtimeOnly(libs.micrometer.prometheus)
46+
47+
testImplementation(libs.spring.boot.starter.test)
48+
testImplementation(libs.testcontainers)
49+
testImplementation(libs.testcontainers.mysql)
50+
}
51+
52+
tasks.test {
53+
useJUnitPlatform()
54+
}

docker-compose.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
version: "3.9"
2+
3+
services:
4+
postgres:
5+
image: postgres:15
6+
container_name: my_postgres
7+
restart: always
8+
environment:
9+
POSTGRES_USER: myuser
10+
POSTGRES_PASSWORD: mypassword
11+
POSTGRES_DB: mydb
12+
ports:
13+
- "5432:5432"
14+
volumes:
15+
- postgres_data:/var/lib/postgresql/data
16+
17+
redis:
18+
image: redis:7
19+
container_name: my_redis
20+
restart: always
21+
ports:
22+
- "6379:6379"
23+
volumes:
24+
- redis_data:/data
25+
26+
volumes:
27+
postgres_data:
28+
redis_data:

gradle/libs.versions.toml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
[versions]
2+
springboot = "3.0.6"
3+
jjwt = "0.9.1"
4+
jaxb = "2.4.0-b180830.0359"
5+
mysql = "8.0.30"
6+
gson = "2.10"
7+
lombok = "1.18.30" # put actual version you use
8+
mapstruct = "1.5.3.Final"
9+
springdoc = "1.6.14"
10+
jedis = "3.9.0"
11+
jackson = "2.15.0"
12+
micrometer = "1.11.0" # adjust if needed
13+
testcontainers = "1.17.6"
14+
15+
[libraries]
16+
spring-boot-starter-web = { module = "org.springframework.boot:spring-boot-starter-web" }
17+
spring-boot-starter-security = { module = "org.springframework.boot:spring-boot-starter-security" }
18+
spring-boot-starter-data-jpa = { module = "org.springframework.boot:spring-boot-starter-data-jpa" }
19+
spring-boot-starter-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator", version.ref = "springboot" }
20+
spring-boot-starter-data-redis = { module = "org.springframework.boot:spring-boot-starter-data-redis", version.ref = "springboot" }
21+
spring-boot-starter-cache = { module = "org.springframework.boot:spring-boot-starter-cache", version = "2.4.3" }
22+
spring-boot-starter-test = { module = "org.springframework.boot:spring-boot-starter-test" }
23+
24+
jjwt = { module = "io.jsonwebtoken:jjwt", version.ref = "jjwt" }
25+
jaxb-api = { module = "javax.xml.bind:jaxb-api", version.ref = "jaxb" }
26+
mysql-connector = { module = "mysql:mysql-connector-java", version.ref = "mysql" }
27+
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
28+
lombok = { module = "org.projectlombok:lombok", version.ref = "lombok" }
29+
30+
mapstruct = { module = "org.mapstruct:mapstruct", version.ref = "mapstruct" }
31+
mapstruct-processor = { module = "org.mapstruct:mapstruct-processor", version.ref = "mapstruct" }
32+
33+
springdoc-openapi-ui = { module = "org.springdoc:springdoc-openapi-ui", version.ref = "springdoc" }
34+
jedis = { module = "redis.clients:jedis", version.ref = "jedis" }
35+
jackson-jsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson" }
36+
37+
micrometer-prometheus = { module = "io.micrometer:micrometer-registry-prometheus", version.ref = "micrometer" }
38+
39+
testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers" }
40+
testcontainers-mysql = { module = "org.testcontainers:mysql", version.ref = "testcontainers" }

gradle/wrapper/gradle-wrapper.jar

54.3 KB
Binary file not shown.

0 commit comments

Comments
 (0)