네트워크 설정 > DNS 설정

8.8.8.8 추가하고 서버 다시 시작

1. build.gradle 파일 수정

기존 gradle 부분에 [추가] 부분을 추가하면 된다

//[추가start]
buildscript {
    ext {
        queryDslVersion = "5.0.0"
    }
}
//[추가end]

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.3.4'
	id 'io.spring.dependency-management' version '1.1.6'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(17)
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-security'
	// JWT Dependencies
    implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
    implementation 'org.modelmapper:modelmapper:3.1.0'
    implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2'
    runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
    runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'
	runtimeOnly 'com.mysql:mysql-connector-j'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'io.projectreactor:reactor-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
	compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
	implementation group: 'org.json', name: 'json', version: '20240303'
	//[추가start]
	implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta"
	implementation "com.querydsl:querydsl-apt:${queryDslVersion}:jakarta"
	annotationProcessor(
		"com.querydsl:querydsl-apt:${queryDslVersion}:jakarta",
		"jakarta.annotation:jakarta.annotation-api",
		"jakarta.persistence:jakarta.persistence-api"
	)
    //[추가end]
}

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

//[추가start]
def querydslDir = "src/main/generated"

sourceSets {
    main.java.srcDir querydslDir
}

tasks.withType(JavaCompile) {
    options.annotationProcessorGeneratedSourcesDirectory = file(querydslDir)
}

clean {
    delete file(querydslDir)
}
//[추가end]

 

 

 

2. 프로젝트 gradle refresh

 

 

 

3. Gradle Tasks > build 실행

 

안보이면 Window > Show View > Other > Gradle Tasks [Open]

 

 

4. 프로젝트 새로고침해서 생성된 QEntity.java 확인

 

 

안되면 gradle clean 이나 :compileJava 해준다.

private enum MessageType {
    A("Apple"), 
    B("Bar"), 
    C("Care"),
    DEFAULT("Etc");

    private final String resultMessage;

    MessageType(String resultMessage) {
        this.resultMessage = resultMessage;
    }

    public String getResultMessage() {
        return resultMessage;
    }

    public static String getResultMessageByType(String message) {
        for (MessageType type : MessageType.values()) {
            if (type.name().equals(message)) {
                return type.getResultMessage();
            }
        }
        return DEFAULT.getResultMessage();
    }
}

 

사용은 이렇게 하면 된다.

MessageType.getResultMessageByType("A") // Apple

 

1. jenkins > 새로운 Item

 

 

2. 아이템이름과 Freestyle project 선택 후 OK

 

 

 

 

 

 

3. 소스 코드 관리 > Credentials 추가

Kind : Username with password

Username : 깃 계정 아이디

Password : 깃 계정 비밀번호

입력 후 저장

 

 

 

4. 소스 코드 관리 > 깃 정보 입력

Git Repository  : 깃 주소 입력

Credentials : 위에서 만든 깃 계정 정보 선택

Branch Specifier : 빌드 할 브랜치 입력 (master, develop ...)

 

 

 

5. Gradle 설정 추가

Build Steps > Add Build Step > Invoke Gradle Script 추가

 

 

 

Invoke Gradle > Gradle Version 선택

Tasks > bootjar 입력

 

Gradle Version은 프로젝트 gradle 버전과 맞춰서 설정

Jenkins > Jenkins 관리 > Tools 에서 생성가능

 

Gradle > 고급 > 아래쪽 Build File 작성

ex) boot/build.gradle

 

 

 

6. Execute Shell 추가

/bin/sh -xe /app/boot/patch/patch.sh 입력 (경로는 쉘스크립트 있는 경로 맞게 수정)

java -jar app.jar 이렇게 쓰지않고 쉘 스크립트에 명령어를 한번에 정리해서 실행하려고 위처럼 작성

 

<쉘 스크립트 내용>

echo "start ..."
cd /var/jenkins_home/workspace/boot/projectName/build/libs
export BUILD_ID=dontKillMe
nohup java -jar projectName-1.0.jar --spring.profiles.active=dev >  /dev/null 2>&1 &
echo "end ..."

 

docker 로 jenkins 를 띄웠을 시 보통 /2에서 만든 젠킨스 아이템이름/깃 프로젝트 이름/build/libs 에 .jar 파일이 생성된다.

그게 아닐 경우 .jar 파일을 find / -name 프로젝트이름.jar 명령어로 경로를 찾으면 된다.

jar 파일 이름은 프로젝트이름-build.gradle 에 있는 version 이다.

ex) 프로젝트이름 : boot , version : 1.0 일시 jar 파일이름은 boot-1.0.jar

 

2번째줄 cd 뒤의 경로는 .jar 파일이 있는 경로를 적어주면 된다.

3번째줄은 jar 파일 실행 시 jenkins 로 빌드하면 백그라운드로 실행 안해주면 빌드가 안끝나고 무한 뱅글뱅글 돌기 때문에 적어준다.

4번째줄도 마찬가지로 백그라운드로 jar 파일 실행하기 위해 적어준다.

첫번째줄과 마지막줄은 그저 쉘 스크립트가 실행되는지 위한 확인용도다.

 

쉘 스크립트는 원하는 경로를 cd 로 이동후 vi patch.sh 써주면 쉘스크립트 파일을 생성할 수 있다.

 

7. 저장 후 실행

저장 후 빌드 > application.properties 에서 설정했던 포트로 접속해보면 사이트가 떠있는 것을 확인할 수 있다.

+ Recent posts