2010-03-04 2 views
6

maven을 사용하여 웹 서버에 파일을 복사하는 방법을 찾고 있습니다. html, js, 속성 및 구성 파일 세트를 포함하는 maven 프로젝트가 있습니다.아티팩트 및 필터 자원의 압축을 푸는 방법은 무엇입니까?

내 물건을 포장하고 저장소에 배포하고 싶습니다. 그 후 다른 maven 프로젝트에서 아티팩트에서 파일 압축을 풀고 리소스를 필터링하고 서버의 지정 폴더에 복사하고 싶습니다.

가장 좋은 방법은 무엇입니까?

maven-dependency-plugin은 이슈를 압축 해제 할 수 있지만이 경우 리소스 필터링을 사용하는 방법과 여러 출력 디렉토리를 지정하는 방법을 찾지 못했습니다.

답변

1

maven assembly plugin을 사용하여 필요한만큼의 배포판을 만들고 조립 시간이 일 때 filtering을 사용합니다. 그런 다음 이러한 어셈블리를 리포지토리에 배포하고 실제로는 maven 종속성 플러그 인을 사용하여 지정된 컴퓨터에서 어셈블리를 검색하고 압축을 풀 수 있습니다. Sonatype의 저서 Chapter 8. Maven Assemblies에있는 어셈블리에 대해 자세히 설명합니다.

업데이트 : 배포하지 않으려는 경우이 대안은 "필터링"어셈블리 (제안 여전히 프로파일 및 필터링을 사용)에서 대상 기계를 조립 를 작성하는 것입니다. 생성 된 배포판에는 올바른 폴더에 올바른 컨텐트가 포함됩니다 (어셈블리를 사용하여 배포 할 수 있음). 마지막 단계의 아카이브 압축을 풀면됩니다.

+0

저장소에 필터링 된 아티팩트를 저장하는 것은 좋지 않습니다. 필터링은 환경과 관련된 것입니다. – eugenn

+0

@eugenn "필터링 된"아티팩트 또는 환경 관련 아티팩트를 저장할 때의 문제점은 무엇입니까? 이것은 실제로 플랫폼에 따라 다를 수있는 배포판에서 특히 많이 발생합니다 (이것은 간단한 예이지만 .zip 또는 .tar.gz는 다른 end-of-line 문자를 사용합니다). 어쨌든 필터링되지 않은 아티팩트는 쓸모가 없습니다. –

+0

예를 들어, 내 응용 프로그램을 배포하기위한 환경이 12 개 있습니다. 건물에 어떤 이슈에 대한 필터링을 적용한다면, 수십 개의 다른 아티팩트에 배포해야합니다. 또는 repo에서 하나의 "필터링되지 않은"버전 (원시)을 유지하고 필터링을 사용하면 최종 앱만 생성 할 수 있습니다. 하나의 프로젝트에서 "unfilterd"이슈를 생성하고 (두 번째 프로젝트에서 최종 응용 프로그램을 생성하고 사용자 정의 할 수 있기를 바랍니다.) 두 번째 프로젝트는 첫 번째 프로젝트에서 생성 된 아티팩트에서 자리 표시자를 제거해야합니다. – eugenn