Skip to content

Commit

Permalink
Merge branch 'be' into chore/bemerge
Browse files Browse the repository at this point in the history
  • Loading branch information
imjanghyeok committed May 23, 2024
2 parents 6e873ab + c29f8b3 commit 67fdb3f
Show file tree
Hide file tree
Showing 153 changed files with 7,094 additions and 0 deletions.
35 changes: 35 additions & 0 deletions .github/workflows/be-docker-buildx-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: be-docker-buildx-ci

on:
push:
branches:
- 'be'

jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_SECRET_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v5
with:
push: true
tags: cjkimhello97/facefriend-be:latest
platforms: linux/amd64
build-args: |
"ENCRYPT_KEY=${{ secrets.ENCRYPT_KEY }}"
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM openjdk:17-jdk-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} facefriend-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","/facefriend-0.0.1-SNAPSHOT.jar"]
22 changes: 22 additions & 0 deletions HELP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Getting Started

### Reference Documentation
For further reference, please consider the following sections:

* [Official Gradle documentation](https://docs.gradle.org)
* [Spring Boot Gradle Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/3.2.3/gradle-plugin/reference/html/)
* [Create an OCI image](https://docs.spring.io/spring-boot/docs/3.2.3/gradle-plugin/reference/html/#build-image)
* [Spring Web](https://docs.spring.io/spring-boot/docs/3.2.3/reference/htmlsingle/index.html#web)

### Guides
The following guides illustrate how to use some features concretely:

* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)

### Additional Links
These additional references should also help you:

* [Gradle Build Scans – insights for your project's build](https://scans.gradle.com#gradle)

103 changes: 103 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.3'
id 'io.spring.dependency-management' version '1.1.4'
}

group = 'capstone'
version = '0.0.1-SNAPSHOT'

java {
sourceCompatibility = '17'
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'

annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
implementation 'org.springframework.boot:spring-boot-starter-test'

// postgresql
implementation 'org.postgresql:postgresql'

// redis
implementation "org.springframework.boot:spring-boot-starter-data-redis"
implementation 'org.springframework.boot:spring-boot-starter-cache'

// JWT
implementation("io.jsonwebtoken:jjwt-api:0.11.5")
runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.5")
implementation("io.jsonwebtoken:jjwt-jackson:0.11.5")

// Spring Security
implementation 'org.springframework.security:spring-security-crypto'

// lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

// swagger
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0")

// 메일 인증
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '3.0.5'

// AWS S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

// WebSocket
implementation 'org.springframework.boot:spring-boot-starter-websocket'

// SockJs
implementation 'org.webjars:sockjs-client:1.5.1'

// QueryDSL
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
implementation "com.querydsl:querydsl-core"
implementation "com.querydsl:querydsl-collections"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
// java.lang.NoClassDefFoundError (javax.annotation.Generated) 에러 대응 코드
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
// java.lang.NoClassDefFoundError (javax.annotation.Entity) 에러 대응 코드

// JAXB deprecated warning
implementation 'javax.xml.bind:jaxb-api:2.3.0'

// aop
implementation 'org.springframework.boot:spring-boot-starter-aop'
}

tasks.named('test') {
useJUnitPlatform()
}

///// Querydsl 빌드 옵션 (옵셔널)
def generated = 'src/main/generated'

///// querydsl QClass 파일 생성 위치를 지정
tasks.withType(JavaCompile) {
options.getGeneratedSourceOutputDirectory().set(file(generated))
}

///// java source set 에 querydsl QClass 위치 추가
sourceSets {
main.java.srcDirs += [ generated ]
}

///// gradle clean 시에 QClass 디렉토리 삭제
clean {
delete file(generated)
}
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
23 changes: 23 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#
# Copyright 2012-2024 the original author or authors.
#
# 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
#
# https://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.
#

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit 67fdb3f

Please sign in to comment.