Shell 스크립트는 프로젝트 가져오기, 컴파일, 패키지, 배포
배경 설명
그룹에서 두 대의 서버를 얻었다. 하나는 연구개발 서버이고 하나는 테스트 서버이다.그러나 그룹 운영이 방문 업로드 다운로드를 제한하기 때문에 매번 저희가 서버를 개발하여 업데이트를 해야 하거나 테스트 서버가 업데이트를 해야 할 때 오랫동안 가방을 업로드해야 하며 반드시 성공할 수 있는 것은 아니기 때문에 스크립트를 통해 해결하고자 합니다.
원장면: 1.개인 작업 컴퓨터에서 코드를 작성하여github(내망 서버에서 연구개발 서버가 아님)를 제출합니다. 2.로컬 테스트 완료, 전단과 연결, 디버깅, 복구 bug3.로컬로jar로 포장하여 연구개발 서버에 업로드 4.연구 개발 환경에서 1차 테스트를 진행하다.만약에 연구 개발에 문제가 있으면 로컬 테스트로 돌아가 연구 개발 환경을 업데이트(업로드jar배치)6.연구 개발 1차 테스트 완료 문제 없음, 테스트 환경 배치, 2차 테스트 7.만약 2차 테스트에 문제가 있다면, 직접 로컬 테스트로 돌아가 8.버그가 끝날 때까지 위의 절차를 반복합니다.
최적화 후: 1.개인 작업 컴퓨터에서 코드를 작성하여 연구 개발 서버의github2를 제출합니다.로컬 테스트 완료, 전단과 연결, 디버깅, 복구 bug3.연구개발 서버에서git 명령으로 프로젝트를 추출하고 mvn을 패키지 배치하여 연구개발 환경에 발표한다.테스트 완료 후 직접 scp 테스트 환경에 테스트 서버 서비스 인터페이스 재배치
비고: a. 연구개발 서버에github(다른 서버에서 추출할 수도 있지만 추출할 수 있음)를 설치해야 한다. b. 연구개발 서버에maven(컴파일링 패키지 사용) c. 스크립트를 작성하여git로 최신 코드를 추출하고 컴파일링, 패키지링, 연구개발 환경배치(현재 서비스 정지 포함)d. 스크립트 패키지 테스트 환경을 작성해야 한다.
최적화 프로세스
1.github 설치
github, , 。
github, Google。
2. maven 설치
maven, , mvn ,
maven jre.
3. 개발 환경 서비스 배치 스크립트 작성
#!/bin/sh
#
DIR=$(cd `dirname $0`; pwd)
SERVICE_NAME=$(basename $DIR)
# JAR ,
PATH_TO_JAR=${SERVICE_NAME}.jar
./service-java.sh stop
rm -rf ${SERVICE_NAME}.jar
API_JAR=/home/api/${SERVICE_NAME}
rm -rf ${API_JAR}/${SERVICE_NAME}-1.0-SNAPSHOT.jar
PID_PATH_NAME=`dirname ${PATH_TO_JAR}`/${SERVICE_NAME}.pid
SOURCE_CODE_PARENT_FOLDER=/home/source/smartvls/
TARGET_JAR_FOLDER=/home/source/smartvls/${SERVICE_NAME}/target/${SERVICE_NAME}-1.0-SNAPSHOT.jar
cd ${SOURCE_CODE_PARENT_FOLDER}
git pull -r
mvn clean install -pl ${SERVICE_NAME} -am
mv ${TARGET_JAR_FOLDER} ${API_JAR}/${SERVICE_NAME}.jar
cd ${API_JAR}
./service-java.sh start
# ,
ssh 172.X.X.181 "cd $API_JAR && ./service-java.sh stop && rm -rf ./${SERVICE_NAME}.jar && scp -r [email protected]:${API_JAR}/${SERVICE_NAME}.jar ./${SERVICE_NAME}.jar ; ./service-java.sh start ; exit"
비고: 여기는 연구 개발과 테스트 사이의 비밀 해제 ssh 로그인이 필요합니다.
여기에 문제가 하나 있을 거예요. 바로...service-jave.shstop 명령은 반드시 서비스를 멈출 수 없습니다. 만약 시작에 성공하지 못했다면 다시 서비스를 죽여야 합니다. 이 서비스를 다시 시작하면 됩니다.
다음으로 전송:https://blog.51cto.com/4837471/2380187
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.