Maven 설명서를 읽고 'uber-jar'라는 이름을 발견했습니다.
동네 짱 병은 무엇을 의미하며 그 특징 / 장점은 무엇입니까?
Maven 설명서를 읽고 'uber-jar'라는 이름을 발견했습니다.
동네 짱 병은 무엇을 의미하며 그 특징 / 장점은 무엇입니까?
답변:
Über
above
또는에 대한 독일어 단어입니다 over
(실제로는 영어와 동 떨어져 있습니다 over
).
따라서,이 문맥에서, uber-jar은 하나의 단일 JAR 파일에 패키지 와 모든 종속성을 모두 포함하는 것으로 정의 된 단순한 JAR (a) 에서 한 단계 위로 올라간 "over-jar" 입니다. 이름은 ultrageek, superman, hyperspace 및 메타 데이터와 같은 안정적인 이름에서 유래 한 것으로 생각할 수 있으며, "일반을 넘어서"라는 의미가 모두 비슷합니다.
장점은 uber-jar에 실제로 종속성 이 없기 때문에 uber-jar을 배포하고 대상에 종속성이 설치되어 있는지 여부를 전혀 신경 쓰지 않아도된다는 것 입니다.
uber-jar 내에서 자신의 물건의 모든 종속성 도 해당 uber-jar 내에 있습니다. 이러한 종속성의 모든 종속성과 마찬가지로. 등등.
(가) 아마 안 의 JAR 자바 개발자에게 무엇인지 설명해야하지만 완전성을 위해 포함됩니다. Java 아카이브이며 기본적으로 관련 메타 데이터 및 리소스와 함께 여러 Java 클래스 파일을 포함하는 단일 파일입니다.
über
및 over
이러한 단어 쌍에서 관찰 할 수있다 오래된 게르만의 체계적인 보컬 변화의 결과이다 : geben/give
, leben/live
, haben/have
, heben/heave
그리고 더 많은.
ubar jar 는 또한 지방 jar 즉 종속성이있는 jar 로도 알려져 있습니다.
동네 짱 항아리를 구성하는 일반적인 세 가지 방법이 있습니다.
Paxdiablo 정의는 정말 좋습니다.
또한, 실제로 소프트웨어를 배포하고 고객이 직접 종속성을 다운로드하지 않도록하려면 uber-jar를 제공하는 것이 매우 흥미 롭습니다. 단점으로, 자체 정책으로 일부 라이브러리의 사용을 허용하지 않거나 일부 추가 구성 요소 (slf4j, 시스템 호환 라이브러리, arch specialiez 라이브러리 등)를 바인딩 해야하는 경우 아마도 어려움을 겪을 것입니다 .
당신은 그것을 수행 할 수 있습니다 :
보다 확실한 해결책은 세 번째 라이브러리를 별도로 제공하는 것입니다. maven-shade-plugin에는 이에 대한 설명자가 미리 구성되어 있습니다. 이것은 더 복잡하지 않습니다 (maven 및 해당 플러그인 사용).
마지막으로 OSGI 번들을 사용하는 것이 가장 좋습니다. 좋은 튜토리얼이 많이 있습니다 :)
추가 구성에 대해서는 다음 주제를 읽으십시오.
스키니 – 문자 그대로 코드 편집기에 입력 한 비트 만 포함하고 다른 비트는 포함하지 않습니다.
Thin – 위의 모든 PLUS와 앱의 앱 직접 종속성 (DB 드라이버, 유틸리티 라이브러리 등)을 모두 포함합니다.
Hollow – Thin의 반대 – 앱을 실행하는 데 필요한 비트 만 포함하고 앱 자체는 포함하지 않습니다. 기본적으로 사전 패키지화 된 "앱 서버"로 나중에 기존 Java EE 앱 서버와 동일한 스타일로 앱을 배포 할 수 있지만 중요한 차이점이 있습니다.
지방 / 동네 짱은 - 비트가 말 그대로 자신을 쓰기 포함 PLUS 앱 직접 종속 PLUS "자신의"응용 프로그램을 실행하는 데 필요한 비트를.
출처 : Dzone의 기사