2010-03-02 2 views
3

mvn install : install 명령을 사용하여 내부 파일을 Maven 저장소에 설치하고 있습니다. 이런 식으로 설치된 모든 Jar에는 버전 이름이 자동으로 접미사로 추가됩니다. Jars 이름을 가진 배치 스크립트가 많기 때문에 우리에게는 매우 불편합니다. 이 자동 이름 바꾸기를 어떻게 끌 수 있습니까?Maven이 설치된 jar의 이름 바꾸기를 중지하는 방법

답변

7

수 없습니다. 메이븐의 의존성 해결은 메이븐이 규칙을 가지고 있고 아티팩트의 명명이 그 중 하나이기 때문에 작동합니다. 그래서 당신은 인공물 install (그리고 당신은 실제로 싶지 않아요) 인공물을 해제 할 수 없습니다.

스크립트 (bat/sh)를 처리하는 일반적인 방법은 소스 트리 (예 : src/main/bin)에 넣고 assembly plugin으로 프로젝트 배포를 만드는 것입니다. 어셈블리를 빌드 할 때 이슈의 이름을 바꿀 수 있습니다. filter 배포 파일 등이 그러한 종류의 작업을 수행 할 수있는 적절한 장소입니다.

3

버전 번호를 제거하고 싶을 지 모르지만 가능하다면 계속 사용하는 것이 좋습니다.

버전 번호를 삭제하는 대신 Maven's resource filtering 기능을 사용하여 배치 스크립트를 관리 할 수 ​​있습니까? Maven은 bat 스크립트 내의 $ {project.version} 같은 자리 표시자를 pom.xml의 현재 버전 번호로 대체하여 배치 스크립트를 관리 할 수 ​​있습니다. 이렇게하면 일괄 처리 스크립트가 올바른 (예상되는) 버전의 코드를 실행하는지 확인할 수 있습니다.

아마도 maven에 버전이없는 jar를 배포하도록 강요 할 수 있지만 그렇게하면 Maven이 빌드를 처음부터 관리하도록하는 주요 이점 중 일부를 잃게됩니다. 예를 들어, 어제 나는 lib 디렉토리 내부에 버전이없는 jar 파일들을 가지고있는 maven에 의해 관리되지 않는 자바 프로젝트를 유지할 것을 요청 받았다. 항아리가 어디서 왔는지 알 수있는 방법이 없습니다.

앞면에는 약간의 두통이있을 수 있지만, maven을 사용하고 있다면 100 % 뛰어 올 수도 있습니다.

+0

스크립트 (bat/sh)는 일반적으로 리소스가 아닙니다. –

+0

@Pascal Thivent, 왜 그럴 수 없습니까? 나는 스크립트를 dir 이름 스크립트 아래에 두는 기술을 사용한다. 그런 다음, Maven 리소스 필터를 구성하여 scripts 디렉토리의 파일을 필터링 할 수 있습니다. 그것은 위대한 작품. – Upgradingdave

+0

그들은 타겟/클래스로 끝나지 않습니까? –

관련 문제