2010-12-08 2 views
0

웹 응용 프로그램을 개발하고 maven을 종속성 관리 (duh)에 사용합니다. 필요한 jar 중 일부는 이미 서버 lib 폴더에서 사용할 수 있지만 버전 접미사가 누락 된 "maven naming scheme"과 일치하지 않습니다.Maven 및 AppServer 종속성 관리 모범 사례

나는 그들을 개발 및 배치에 사용하고 싶지만 ..
1. maven이 버전 접미어를 필요로하기 때문에 그럴 수 없다. 나는 pom에서 그것을 생략 할 수 없다.
2. maven 외부에서 종속성을 정의한 경우 maven은 분명히 빌드 할 수 없습니다.
3. 서버 배포판 내부의 파일 이름을 변경하면 kludge처럼 들립니다.

브라이언 보아 타노는 무엇을 할 것입니까? 내 말은, 위의 세 가지 솔루션 중 하나에 대해 잘 모르는 우아한 솔루션 또는 적어도 좋은 논쟁이 있다는 것입니다.

감사합니다.

PS입니다. 나는 jboss 5.1 및 maven 2.2.1 atm을 사용하고 있지만 변경 대상은

+0

나는 "maven을 사용하여 중복 jar 배포를 피하는 방법"이라는 질문에 이름을 붙여야한다고 생각합니다. 그래서 지금까지 2 가지 모범 사례가 있습니다 - c0mrade에서 "현명하지 않으려 고 노력하지 마십시오"및 "로컬 라이브러리의 시스템 범위 사용"을 dimitrisli에서 가져 왔습니다. 시스템 범위는 일종의 추천되지 않습니다. JBossSHOME과 같은 환경 변수와의 상대적인 경로에 대해 deprecation이 여전히 유효한지 궁금하다. – kostja

답변

1

명시 적으로 살고 싶은 위치를 식별하려면 해당 병을 system 범위의 종속 항목으로 제공 할 수 있습니다. 자세한 내용은보십시오 here

+0

덕분에, 이미 mvn을 로컬 항아리로 연결하는 방법을 알아 냈습니다.하지만 여전히 버전 접미사 문제가 있습니다 ... 그 아이디어도 있습니다. – kostja

+0

접미어 문제는 무엇을 의미합니까? 시스템 fullPathFileWithoutVersionSuffix.jar을 종속성에 제공하면 문제가 없습니다. – dimitrisli

+0

내 나쁜, 항아리하지만 lib 폴더에 명시 적으로 maven 가리 킵니다. 이제 작동합니다 :) 그리고 $ {env.JBOSS_HOME}을 사용하면 시스템 범위가 그다지 좋지 않습니다. – kostja

0

이들이 독점적 인 라이브러리가 아닌 경우, Maven 저장소의 공식 버전을 사용하는 것이 좋습니다.

소유권이있는 경우 maven (버전, 접미어, 그룹 이름, artifactid 등을 사용할 수 있음)을 사용하여 수동으로 jar를 로컬 저장소에 설치 한 다음 pom에서 사용할 수 있습니다.

+0

감사합니다. 항아리가 이미 있고 규칙적인 절차를 따르고 있다는 사실을 무시하는 것이 해결책 인 것 같습니다. 그게 내가 언급 한 옵션은 없지만 : 1. 일반적인 병을위한 중복 배포를 피하고 싶습니다. 2. 왜 서버 배포에서 제공하는 repo 병을 선호합니까? – kostja

+0

@kostja 1. 그것이 maven이 작동하는 방식이기 때문에 마음에 들지 않으면 그것을 사용하지 마십시오. 당신은 artifactId, groupId 등이 있어야합니다. 2. 그들은 기본적으로 동일 합니다만, 당신이 최신 버전의 트랙을 유지하기를 원한다면, maven이 당신을 위해 그렇게하는 것보다 더 쉽게 할 수 있습니다. – ant

+0

인스턴트 메신저 두려운 프로젝트를위한 도구의 선택은 항상 내 개인적인 취향이 아닌 개인적인 취향에 관한 것이 아닙니다. btw 나는 정말로 maven을 좋아합니다. 개미를 사용한 후에해야합니다. 메신저 오히려 그것에 새로운. 어떻게 webapps "mvn 방법"그것을 복제하지 않고 항아리를 공유할까요? – kostja