Maven 의 - 로 컬 jar 가방 을 사용 하여 war 가방 에 포장 하 는 방법
2460 단어 Maven
Maven 은 팀워크 와 오픈 소스 코드 를 발표 하 는 데 사용 되 기 때문에 이런 방법 은 매우 바람 직 하지 않다.로 컬 jar 가방 을 사용 하면 Maven 은 이 부분의 장점 을 잃 게 된다.그러나 제 가 만난 문 제 는 Maven 을 배우 고 싶 습 니 다. 그리고 예전 의 프로젝트 는 회사 의 프로젝트 가 모두 Maven 을 사용 하지 않 았 습 니 다.그리고 그 중 일부 jar 가방, 특히 일부 항목 build 이후 dist 폴 더 에 있 는 가방 을 참조 하고 싶 습 니 다.그래서 다음 방법 을 생각해 냈 다.
나 는 먼저 나의 Maven 프로젝트 다음 에 lib 폴 더 를 만들어 서 내 가 사용 할 jar 가방 을 모두 안에 넣 었 다.그리고 pom. xml 에 다음 과 같은 내용 을 추가 합 니 다.
com.weiresearch
webharvest
1.0.0
system
${project.basedir}/lib/webharvest.jar
이곳 의 groupId, artifactId, version 은 모두 마음대로 쓸 수 있다.그리고 scope 는 system 으로 쓰 려 면 systemPath 는 인용 할 jar 패키지 경로 로 쓰 십시오.대량으로 가 져 올 수 있 을 지 는 모 르 겠 지만 테스트 해 본 적 이 없 지만 안 될 것 같 습 니 다.
하지만 또 하나의 번 거 로 운 문제 가 있 습 니 다. 제 프로젝트 를 war 가방 으로 포장 할 때 제 가 쓴 코드 만 있 었 고 인용 한 jar 가방 은 포함 되 지 않 았 습 니 다.귀 찮 습 니 다. 포 장 된 war 가방 은 직접 사용 할 수 없습니다.오랫동안 찾다 가 마침내 원인 을 찾 았 다.우선 Maven 을 정상적으로 사용 하 는 다른 가방 입 니 다. 다음 과 같 습 니 다.
javax.servlet
servlet-api
2.5
provided
servlet 가방 을 참조 합 니 다. 가장 중요 한 것 은 scope 라 는 필드 입 니 다. provided 는 이 jar 가방 은 이 프로젝트 의 가능 한 운영 환경 에서 제공 되 기 때문에 war 가방 에 포장 하지 않 아 도 됩 니 다.따라서 war 가방 에 servlet 이라는 가방 을 포함 시 키 려 면 scope 라 는 말 을 삭제 하면 됩 니 다.
위 에 서 는 시스템 이라는 scope 를 이용 해 도입 한 webharvest 가방 도 도입 되 지 않 았 다.인터넷 댓 글 을 보고 나 서 야 시스템 이라는 scope 를 사용 하지 않 는 것 이 좋 겠 다 고 말 했다.아마 이 시스템 이 말 하 는 건이 해결 방법 은 사람 을 귀 찮 게 한다. 마지막 으로 이 문답 을 보고 해결 한 것 이다. Maven 2 assembly with dependencies: jar under scope "system" not included, 해결 방법 은 다음 과 같다.
org.apache.maven.plugins
maven-war-plugin
${project.basedir}/lib
WEB-INF/lib
true
**/*.jar
directory 필드 는 jar 가방 을 사용 할 모든 디 렉 터 리 를 포함 합 니 다.
targetPath 는 컴 파일 후 이 jar 가방 을 복사 할 위치 입 니 다.
아래 필터 링 은 jar 를 접미사 로 하 는 모든 파일 만 가 져 오 는 것 입 니 다.
위의 설정 을 통 해 당신 이 원 하 는 jar 가방 을 가 져 올 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Nexus에서 자체 Maven 리포지토리를 구축하고 sbt에서 사용Scala 현장에서 프로젝트 종속성을 폐쇄된 Maven 리포지토리로 관리할 수 없는가 하는 이야기가 오르기 때문에, 일단 로컬상에서 간이로 검증한 내용을 비망으로 남깁니다. 프로덕션 용 리포지토리 서버는 별도로 현장...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.