동네 짱 항아리는 무엇입니까?
Maven 설명서를 읽고 'uber-jar'라는 이름을 발견했습니다.
동네 짱 병은 무엇을 의미하며 그 특징 / 장점은 무엇입니까?
Über
는 이전 국가에서 다음과 같이 above
또는 over
에 대한 독일어 단어입니다 Deutschland, Deutschland, über alles
(독일, 독일).
따라서이 문맥에서 uber-jar은 하나의 단일 JAR 파일에 패키지 와 모든 종속성을 모두 포함하는 것으로 정의 된 단순한 "jar"에서 한 단계 위로 올라간 "over-jar" 입니다. 이 이름은 ultrageek, superman, hyperspace 및 메타 데이터와 같은 안정에서 유래 한 것으로 생각할 수 있으며, "일반을 넘어서"와 비슷한 의미를 가지고 있습니다.
장점은 uber-jar에 실제로 종속성 이 없기 때문에 uber-jar을 분배하고 대상에 종속성이 설치되어 있는지 여부를 전혀 신경 쓰지 않아도된다는 것 입니다.
uber-jar 내에서 자신의 물건의 모든 종속성 도 해당 uber-jar 내에 있습니다. 이러한 종속성의 모든 종속성과 마찬가지로. 등등.
Paxdiablo 정의는 정말 좋습니다.
또한 소프트웨어를 실제로 배포하고 고객이 직접 종속성을 다운로드하지 않기를 원하는 경우에는 uber-jar를 제공하는 것이 때로는 흥미 롭습니다. 단점으로, 자체 정책으로 일부 라이브러리의 사용을 허용하지 않거나 일부 추가 구성 요소 (slf4j, 시스템 호환 라이브러리, arch specialiez 라이브러리 등)를 바인딩 해야하는 경우 어려움을 겪을 수 있습니다. .
당신은 그것을 수행 할 수 있습니다 :
- 기본적으로 maven-assembly-plugin
- maven-shade-plugin 으로 조금 더 나아가십시오.
보다 깨끗한 솔루션은 세 번째 라이브러리를 별도로 제공하는 것입니다. maven-shade-plugin에는 미리 구성된 설명자가 있습니다. 이것은 더 복잡하지 않습니다 (maven 및 해당 플러그인 사용).
마지막으로 OSGI 번들을 사용하는 것이 가장 좋습니다. 좋은 튜토리얼이 많이 있습니다 :)
추가 구성에 대해서는 다음 주제를 읽으십시오.
ubar jar 는 또한 지방 jar 즉 종속성이있는 jar 로도 알려져 있습니다.
동네 짱 항아리를 구성하는 일반적인 세 가지 방법이 있습니다.
- 음영 처리되지 않은 : 모든 JAR 파일의 압축을 풀고 단일 JAR로 다시 포장하십시오. Java의 기본 클래스 로더와 함께 작동합니다. maven-assembly-plugin 도구
- 음영 처리 : 음영 처리 되지 않은 것과 동일하지만 모든 종속성의 모든 패키지 이름을 바꿉니다 (예 : "음영") . Java의 기본 클래스 로더와 함께 작동합니다. 일부 (전부는 아님) 종속성 버전 충돌을 방지합니다. 도구 Maven-Shade-plugin
- JAR의 JAR : 최종 JAR 파일에는 다른 JAR 파일이 포함되어 있습니다. 종속성 버전 충돌을 피하십시오. 모든 리소스 파일이 유지됩니다. 도구 : Eclipse JAR 파일 내보내기
자체 포함 된 실행 가능한 Java 아카이브. WildFly Swarm uberjars의 경우 애플리케이션을 포함하는 단일 .jar 파일,이를 지원하는 데 필요한 WildFly 부분, 내부 Maven 종속성 저장소 및 모든 부트 스트랩을 포함하는 shim입니다. 이것 좀 봐
참고 URL : https://stackoverflow.com/questions/11947037/what-is-an-uber-jar
'IT story' 카테고리의 다른 글
SHA512 대 복어 및 Bcrypt [폐쇄] (0) | 2020.04.24 |
---|---|
Vagrant '기본'컴퓨터 이름을 변경하는 방법? (0) | 2020.04.24 |
jQuery로 새로운 요소를 생성하는 기본 방법 (0) | 2020.04.24 |
파일 또는 어셈블리 또는 해당 종속성 중 하나를로드 할 수 없습니다 (0) | 2020.04.24 |
객체 속성을 기준으로 배열 요소 제거 (0) | 2020.04.24 |