PlayFramework 1. x 생산 환경 배치 소스 코드 컴 파일

1936 단어
최근 에 플레이 프레임 워 크 를 사용 하고 있 습 니 다. 고성능 빠 른 개발 프레임 워 크 입 니 다. 시 도 를 추천 합 니 다. 생산 환경 배치 에 문제 가 생 겼 습 니 다. 여기 서 기록 하 겠 습 니 다.
우선 공식 문 서 를 살 펴 봤 습 니 다. 1.4.x/deployment 정부 에서 몇 가지 방식 을 언급 하 였 다.
1. 독립 된 play 응용 프로그램 (앞 에는 nginx 또는 apache)
1.4. x / production 이런 방식 은 play 가 아직도 자주 사용 하 는 방법 으로 작 동 하 는 것 이다. 예 를 들 어  play start app 이러한 방식 은 play 앞에서 nginx 의 프 록 시 와 부하 균형 을 맞 추 면 됩 니 다. play 는 PROD 모드 를 제공 합 니 다. PROD 모드 에서 코드 의 실시 간 검색 과 열 배치 기능 을 닫 고 데이터 베이스 연결 을 미리 초기 화 하 는 등 작업 을 하여 성능 을 향상 시 킵 니 다. 그러나 이런 모델 은 가장 큰 문 제 는 소스 코드 도 서비스 에 배치 해 야 한 다 는 것 입 니 다.그래서 우 리 는 두 번 째 방식 을 시도 했다.
2. 자바 EE 서버 사용
1.4. x / deployment, 예 를 들 어 자주 사용 하 는 Tomcat, Jetty 등 은 우리 가 일반적으로 SpringMVC 프로젝트 를 개발 하 는 것 과 마찬가지 로 최종 프로젝트 는 War 패 키 지 를 생산 한 다음 에 이런 미들웨어 에 배치 합 니 다.
play 는 관련 명령 을 제공 합 니 다:
play war myapp -o myapp.war

그러나 우 리 는 이런 방식 을 사용 한 후에 이상 한 문 제 를 발견 했다. 예 를 들 어 관련 자원 이 로드 되 지 않 는 등 인터넷 에서 도 일부 친구 들 이 이상 한 문 제 를 만 났 다. https://github.com/playframework/play1/issues/1206 결국 우리 도 이런 방법 을 포기 했다.
3. precompile 방식 사용
이 문 제 를 연구 할 때, 나 는 play 의 명령 행 옵션 을 살 펴 보고 명령 하 나 를 발견 했다.
precompile      Precompile all Java sources and templates to speed up application start-up

이 명령 의 설명 은 모든 자바 소스 코드 와 템 플 릿 을 미리 컴 파일 하여 프로젝트 의 시작 을 가속 화 하 는 것 입 니 다. 나중에 오래된 버 전 문서 에서 최종 솔 루 션 war - archives - are - fully - precopiled 를 발견 하 였 습 니 다.
play start myApp -Dprecompiled=true

precopile 을 미리 사용 하여 모든 원본 코드 를 컴 파일 한 다음 통과 할 수 있 습 니 다.  play start myApp -Dprecompiled=true  프로젝트 를 직접 시작 하 는 방식 으로 소스 코드 가 필요 하지 않 습 니 다. 그러면 우리 의 실제 구축 과정 은 바로
play clean
play deps --verbose
play precompile
zip -r web.zip conf modules lib precompiled public

캐 시 를 정리 하고 의존 도 를 불 러 오고 미리 컴 파일 한 다음 zip 파일 로 포장 한 다음 생산 환경 에서
play start web -Dprecompiled=true

됐어 요.

좋은 웹페이지 즐겨찾기