문제

저는 Capistrano의 열렬한 팬이지만 Java 전용 상점을위한 자동 배포 스크립트를 개발해야합니다. 나는 Ant와 Maven을 보았고 Capistrano가 원격 관리를 위해 잘 맞지 않는 것 같습니다. 단순히 단순히 구축 및 포장 응용 프로그램에 초점을 맞추는 것 같습니다. 더 좋은 도구가 있습니까?

도움이 되었습니까?

해결책

Java 웹 응용 프로그램에 대한 Capistrano와 같은 응용 프로그램이 있다고 생각하지는 않지만 실제로 응용 프로그램을 배포하기 위해 IT (또는 Fabric과 같은 대안)을 사용하지 못하게해서는 안됩니다. 이미 말했듯이, ANT는 GNU Make를 더 대체하는 반면 Maven은 기본적으로 건축/종속성 관리 응용 프로그램입니다.

Java 웹 응용 프로그램은 외부 라이브러리에 의존하는 .war 컨테이너 덕분에 간단한 HTTP Put-Request를 실행하는 것만 큼 응용 프로그램을 쉽게 배포 할 수 있습니다.

그러나 추가 단계가 필요한 경우 구조 지금까지 저에게 매우 잘 작동했으며 Capistrano는 일반 쉘 커뮤니케이션을 제공하고, 작업 및 작업을 제공한다고 가정합니다. 그래서 나는 당신이 이미 가지고있는 것이 이미 작동한다면 대안을 위해 너무 오래 찾지 않을 것입니다 :-)

다른 팁

컨트롤 테리어 (참조 : 참조 : http://controltier.org)는 당신이 찾고있는 것입니다. ControlTier는 Java 배포에만 독점적으로 사용될 필요는 없습니다.

문서에서 발췌 한 내용을 참조하십시오 (참조 : 참조 : 계층 문서 제어):

Controltier는 Capistrano, 직물 또는 func와 동일합니까?

가장 근본적인 개념에서 Controltier, Capistrano, 직물 및 기능은 비슷한 도구입니다. 우리는 확실히 Capistrano, 직물 및 Func Basic Command Dispatching Frameworks를 호출했습니다.

그러나 ControlTier는 디자인별로 이러한 다른 도구가 제공하는 것보다 훨씬 뛰어납니다. Automation Libraries 및 Controltier가 제공하는 웹 기반 도구는 엔터프라이즈 또는 대규모 웹 운영 팀이 사용할 수 있도록 완전한 자동화 시스템을 구축 할 수 있도록 설계되었습니다. 다른 명령 파견 도구의 범위에 있지 않은 오류 처리 및 중앙 집중식 로깅과 같은 기능도 있습니다.

또한 Capistrano는 Ruby on Rails 커뮤니티의 요구에 주로 초점을 맞춘 루비 기반 도구입니다. Java로 작성된 ControlTier는 Java를 사용하여 사용할 필요가 없습니다. 실제로, 당신은 당신이 편안한 스크립팅 언어 (루비 포함)를 사용할 수 있습니다. ControlTier는 언어 및 플랫폼 (Linux, Unix, Windows 등)이 가능한 한 중립으로되기를 시도합니다.

내 작업에서 우리는 Capistrano를 독점적으로 사용하여 모든 Java 응용 프로그램을 배포합니다. 확실히 가능합니다.

DSPACE (Java WebApp)를 구축하는 데 Capistrano 레시피를 사용하여 소스에서 Maven을 사용합니다. Capistrano를 사용하여 DSPACE 설치

Capistrano는 모든 웹 기본 응용 프로그램을 배포 할 수 있습니다. 다른 언어의 배포는 거의 동일합니다.

  1. 코드 업데이트
  2. 코드를 프로덕션 서버로 푸시하십시오
  3. 이 배포에 대한 구성 파일을 준비하십시오
  4. 서버를 다시 시작하십시오. (얇은, nginx, tomcat)

회사에서는 Capistrano를 사용하여 Java, Vuejs, PHP, Ruby, Python Applications를 배포합니다.

흥미로운 점은 Capistrano의 Repo에 대한 아이디어가 SCM (Source Control Manager)을 다루고 있다고 가정한다는 것입니다. 서버의 구조와 응용 프로그램의 관련 버전 설정은 응용 프로그램 소스에서 작동합니다. 이것은 해석 된 언어에 적합합니다.

그러나 Java와 같은 컴파일링 된 언어에서는 버전화 및 분기가 배포되기 전에 제공되며 응용 프로그램이 컴파일되고 빌드 된 시간에 따라 소스 제어 시스템이 이미 남아 있으며 응용 프로그램이 포함 된 버전이있는 JAR 또는 TAR이란 어떤 결과가 발생합니다. 일반적 으로이 Tarball (Jar + Config)은 Nexus 또는 Aritifactory와 같은 Maven 아티팩트 저장소에 게시됩니다.

놀랍게도,이 아티팩트 리포지토리는 Capistrano Repo에 맵핑됩니다. SCM 대신에, 우리는이 tarball을 SCM (버전으로 구할 소스)으로 취급 할 수 있습니다. 이것을 염두에두고, 나는 a를 구현했다 Maven Artifact Repos 용 Capistrano SCM 플러그인. 새롭지 만 아주 잘 작동합니다.

그것은 하나의 도구에 대한 우리의 루비와 자바 프로젝트를 통일하며, 가장 중요한 것은 Capistrano의 SSHKit의 힘을 가져오고 Java 프로젝트에 갈퀴를 가져다줍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top