diff --git a/Dockerfile_server b/Dockerfile_server new file mode 100644 index 0000000..b556442 --- /dev/null +++ b/Dockerfile_server @@ -0,0 +1,10 @@ +FROM openjdk:17-jdk-alpine +MAINTAINER [AutoFlow] + +RUN apk --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime + +RUN mkdir /server +ADD build/libs/autoflow-0.0.1-SNAPSHOT.jar /server/autoflow-0.0.1-SNAPSHOT.jar + +WORKDIR /server +ENTRYPOINT ["java", "-jar", "autoflow-0.0.1-SNAPSHOT.jar"] \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 06730cd..84857bd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,58 +1,74 @@ -/* - * This file was generated by the Gradle 'init' task. - */ - plugins { + // Spring Boot + id("org.springframework.boot") version "3.5.3" + // Spring 의존성 관리(BOM) + id("io.spring.dependency-management") version "1.1.7" + + // Java 라이브러리, (필요하면) Maven Publish `java-library` `maven-publish` - kotlin("jvm") } -repositories { - mavenLocal() - maven { - url = uri("https://repo.maven.apache.org/maven2/") +group = "kr.re.etri" +version = "0.0.1-SNAPSHOT" +description = "spring-security-refresh-token" + +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(17)) } +} + +repositories { mavenCentral() } dependencies { - api(libs.org.springframework.boot.spring.boot.starter.data.jpa) - api(libs.org.springframework.boot.spring.boot.starter.security) - api(libs.org.springframework.boot.spring.boot.starter.web) - api(libs.org.springframework.boot.spring.boot.starter.validation) - api(libs.io.jsonwebtoken.jjwt.api) - api(libs.org.springdoc.springdoc.openapi.starter.webmvc.ui) - runtimeOnly(libs.io.jsonwebtoken.jjwt.impl) - runtimeOnly(libs.io.jsonwebtoken.jjwt.jackson) - runtimeOnly(libs.org.mariadb.jdbc.mariadb.java.client) - testImplementation(libs.org.springframework.boot.spring.boot.starter.test) - testImplementation(libs.org.springframework.security.spring.security.test) + // Spring Boot 스타터들 + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-data-jpa") + implementation("org.springframework.boot:spring-boot-starter-security") + implementation("org.springframework.boot:spring-boot-starter-validation") + + // JWT + implementation("io.jsonwebtoken:jjwt-api:0.11.5") + runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.5") + runtimeOnly("io.jsonwebtoken:jjwt-jackson:0.11.5") + // OpenAPI UI + implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0") + + // MariaDB 드라이버 + runtimeOnly("org.mariadb.jdbc:mariadb-java-client:3.1.4") + + // Lombok (선택) compileOnly("org.projectlombok:lombok:1.18.38") annotationProcessor("org.projectlombok:lombok:1.18.38") testCompileOnly("org.projectlombok:lombok:1.18.38") testAnnotationProcessor("org.projectlombok:lombok:1.18.38") - implementation(kotlin("stdlib-jdk8")) -} -group = "kr.re.etri" -version = "0.0.1-SNAPSHOT" -description = "spring-security-refresh-token" -publishing { - publications.create("maven") { - from(components["java"]) - } + // 테스트 + testImplementation("org.springframework.boot:spring-boot-starter-test") + testImplementation("org.springframework.security:spring-security-test") } -tasks.withType() { +// Java 컴파일 인코딩 및 파라미터 리플렉션 지원 +tasks.withType { options.encoding = "UTF-8" options.compilerArgs.add("-parameters") } -tasks.withType() { +// Javadoc 인코딩 +tasks.withType { options.encoding = "UTF-8" } -kotlin { - jvmToolchain(21) -} \ No newline at end of file + +// (선택) Maven Publish 설정 +publishing { + publications.create("maven") { + from(components["java"]) + groupId = project.group.toString() + artifactId = project.name + version = project.version.toString() + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b50b2fb..838dada 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,7 +3,7 @@ spring.datasource.username=cuuva spring.datasource.password=cuuva spring.jpa.database-platform=org.hibernate.dialect.MariaDBDialect -spring.jpa.hibernate.ddl-auto=create-only +spring.jpa.hibernate.ddl-auto=none spring.sql.init.mode=always diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index e62aefd..15cfe13 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -1,6 +1,6 @@ -- src/main/resources/data.sql # -# INSERT INTO tb_role (id, name) VALUES (1, 'ROLE_USER'); -# INSERT INTO tb_role (id, name) VALUES (2, 'ROLE_MODERATOR'); -# INSERT INTO tb_role (id, name) VALUES (3, 'ROLE_ADMIN'); +-- INSERT INTO tb_role (id, name) VALUES (1, 'ROLE_USER'); +-- INSERT INTO tb_role (id, name) VALUES (2, 'ROLE_MODERATOR'); +-- INSERT INTO tb_role (id, name) VALUES (3, 'ROLE_ADMIN'); #