AWS/aws CICD-metacoding

배포v1 - git에서 리눅스로 프로젝트 받아서 실행

MDanderson 2024. 8. 12. 16:29

gradlew를 통해서 자바 프로젝트를 jar파일 (실행파일) 로 변경가능

 

1.github에서 다운받기

 

2.gradlew 실행권한주기( 리눅스일 경우)

 - chmod u+x gradlew

 

3. 자바 설치 (JDK,JRE)

 -  ex) JDK로 마인크래프트 게임개발

 - ex) 일반사용자들이 마인크래프트 게임을 하려면 JRE가 필요

 - sudo apt-cache search jdk | grep openjdk-11

 - sudo apt update 

 - sudo apt install openjdk-11-jdk

 -java -version 과 javac -version이 일치해야 빌드가 가능하다.  java -version이 위에서 설치한 11이 아니라면,

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

를 하여 환경변수등록을 한후에 진행

 

4. gradlew로 프로젝트를 jar파일로 변경하기

 - ./gradlew build 

gradlew build라고하면안됨 현재 폴더의 gradlew를 보는게 아니라 전역적 환경변수에 등록된 gradlew를 실행하기 때문

 

5.java로 jar파일 실행

 - build/libs 폴더로 들어가서 nohup java -jar *.jar & 로 실행 

로그를 다른 파일에 남기려면 nohup java -jar *.jar > mylog.out & 로 실행 

 

표준출력과 에러출력을 나눠서 기록하기

표준출력은 1        -> log.out에 기록

에러출력은 2        -> err.out에 기록 하기 

 

nohup java -jar *.jar 1>log.out 2>err.out &

프로젝트 외부에서 생긴에러만 err.out 에 기록됨 프로젝트 내부에러는 log.out에 기록됨

 

6. 우분투 타임존변경

timedatectl 치면 local time이 UTC로 미국시간으로 되어있을것이다

timedatectl list-timezones |grep Seoul

sudo timedatectl set-timezone Asia/Seoul

 

jar파일의 PID찾기

ps -ef | grep *.jar | grep -v grep | awk '{print $2}'

pgrep -f *.jar

 

주의

grep *.jar는 실제로 예상대로 동작하지 않을 수 있습니다. 이는 쉘이 *.jar를 현재 디렉토리의 모든 .jar 파일로 확장하기 때문입니다. 만약 현재 디렉토리에 .jar 파일이 없다면, 이 grep 명령은 아무 결과도 찾지 못할 것입니다.

 grep '\.jar'  으로 수정 제안합니다. 

 

-------------------------------

vi spring-stop.sh  생성( 돌아가는 스프링 멈추는 스크립트)

 

echo "Springboot Stop..."

SPRING_PID =$(pgrep -f *.jar)

echo $SPRING_PID

kill -9 $SPRING_PID

-------------------------------------------

chmod u+x spring-stop.sh

 

$변수 : 변수의값을 출력혹은 실행

$(명령어) : 명령어의 결과를 리턴