Java에서 maven-assembly-plugin을 사용하여 .jar/.tar.gz/.zip 아카이브 파일을 만드는 방법은 무엇입니까? Maven 및 Enterprise 프로젝트 튜토리얼
게시 됨: 2020-10-07
Maven
은 정말 놀랍습니다. 너무 많은 플러그인으로 현재 시장에서 Best Java Build tool
중 하나입니다.
나는 모든 프로젝트에서 그것을 사용하고 그것에 크게 의존합니다. 빌드 가능성은 무한합니다. 얼마 전에 저는 다른 많은 maven 플러그인에 대해 다른 자습서를 작성했으며 이번 글에서는 maven-assembly-plugin
을 살펴보겠습니다.
Maven Assembly Plugin은 제공된 어셈블리 디스크립터에 의존하여 실행을 지시합니다.
다음은 이전 maven 플러그인 자습서 목록입니다.
-
maven-war-plugin
– 프로젝트 .war 파일을 생성합니다. -
maven-resources-plugin
,maven-dependency-plugin
및maven-jar-plugin
– 모든 종속성을 포함하는 Java 프로젝트를 빌드하시겠습니까? -
maven-shade-plugin
– 모든 필수 종속성, 속성 및 리소스가 포함된 Java+Spring 기반 실행 파일 .jar를 생성합니다.
아래 질문이 있습니까? 이 튜토리얼도 효과가 있을 것입니다.
- Maven으로 jar 파일을 만드는 방법은 무엇입니까?
- maven을 사용하여 종속성이 있는 jar 파일을 만드는 방법
- pom.xml을 사용하여 jar 생성
- 종속성 없이 maven jar를 만드는 가장 좋은 방법
- 종속성을 포함하여 maven jar를 만드는 방법
maven-assembly-plugin을 시작해 봅시다.
1 단계
Eclipse 환경에서 New Maven 프로젝트를 생성합니다. 이름을 CrunchifyMavenBuildPlugins
로 지정합니다. 기존 동적 웹 프로젝트 또는 Java 프로젝트가 있는 경우 이 단계를 사용하여 프로젝트를 maven 프로젝트로 변환할 수 있습니다. 프로젝트를 Maven으로 변환한 후 이 튜토리얼에 필요한 pom.xml
파일이 생성된 것을 볼 수 있습니다.
여기 내 프로젝트 구조가 있습니다. /src/com/crunchify/tutorials
패키지 아래에 총 8 java files
이 있는 기존 프로젝트를 사용하고 있습니다.

2 단계
프로젝트의 pom.xml 파일을 열고 주로 line 28 to 38
에 새 <plugin></plugin>
을 추가합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0.0 < / modelVersion > < groupId > CrunchifyMavenBuildPlugins < / groupId > < artifactId > CrunchifyMavenBuildPlugins < / artifactId > < version > 0.0.1 - SNAPSHOT < / version > < name > CrunchifyMavenBuildPlugins < / name > < properties > < project . build . sourceEncoding > UTF - 8 < / project . build . sourceEncoding > < / properties > < dependencies > < dependency > < groupId > wsdl4j < / groupId > < artifactId > wsdl4j < / artifactId > < version > 1.6.3 < / version > < / dependency > < dependency > < groupId > com . google . zxing < / groupId > < artifactId > core < / artifactId > < version > 2.0 < / version > < / dependency > < / dependencies > < build > < plugins > < plugin > < artifactId > maven - assembly - plugin < / artifactId > < version > 2.5.3 < / version > < configuration > < descriptors > < descriptor > src / com / crunchify / assembly / crunchify . xml < / descriptor > < / descriptors > < tarLongFileMode > posix < / tarLongFileMode > < / configuration > < / plugin > < / plugins > < / build > < / project > |
3단계
새 파일 crunchify.xml
을 만들고 /src/com/crunchify/assembly
패키지에 넣습니다. 위의 pom.xml
파일에서 이미 이 파일을 참조했습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
< assembly xmlns = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd" > < id > bundle < / id > < formats > < format > tar . gz < / format > < format > zip < / format > < format > tar < / format > < / formats > < includeBaseDirectory > false < / includeBaseDirectory > < fileSets > < fileSet > < directory > src / com / crunchify / tutorial < / directory > < outputDirectory > crunchify - output < / outputDirectory > < / fileSet > < / fileSets > < / assembly > |
여기에서 프로젝트를 3가지 다른 <formats>
으로 내보내고 있습니다.

- tar.gz
- 지퍼
- 타르
<directory>
태그는 – src/com/crunchify/tutorial
패키지 아래에 있는 모든 것을 가져와서 <outputDirectory>
태그 아래에 언급된 crunchify-output
폴더에 넣습니다.
/src
또는 /resource
폴더 내용과 같은 모든 것을 포함하려면 아래에서 다양한 변형을 사용할 수 있습니다.
- <디렉토리>
src/com/crunchify/tutorial
</디렉토리> - <directory>
src
</directory> : src 폴더 아래의 모든 것 - <directory>
resources
</directory> : 리소스 폴더 아래의 모든 항목 - <디렉토리>
/
</디렉토리> : 모든 것
4단계
프로젝트 CrunchifyMavenBuildPlugins => Run As
=> Maven build
를 마우스 오른쪽 버튼으로 클릭

-
clean assembly:assembly
-
Apply
클릭 - 실행을 클릭
Run

5단계
콘솔에 BUILD SUCCESS
메시지가 표시되어야 합니다.
1 2 3 4 5 6 7 8 9 |
[ INFO ] --- maven - assembly - plugin : 2.5.3 : assembly ( default - cli ) @ CrunchifyMavenBuildPlugins --- [ INFO ] Reading assembly descriptor : src / com / crunchify / assembly / crunchify . xml [ INFO ] Building tar : / Users / crunchifyjavatutorials / CrunchifyMavenBuildPlugins / target / CrunchifyMavenBuildPlugins - 0.0.1 - SNAPSHOT - bundle . tar . gz [ INFO ] Building zip : / Users / crunchifyjavatutorials / CrunchifyMavenBuildPlugins / target / CrunchifyMavenBuildPlugins - 0.0.1 - SNAPSHOT - bundle . zip [ INFO ] Building tar : / Users / crunchifyjavatutorials / CrunchifyMavenBuildPlugins / target / CrunchifyMavenBuildPlugins - 0.0.1 - SNAPSHOT - bundle . tar [ INFO ] ------------------------------------------------------------------------ [ INFO ] BUILD SUCCESS [ INFO ] ------------------------------------------------------------------------ [ INFO ] Total time : 1.719 s |
6단계
NOTE:
이 단계를 수행할 필요는 없습니다.

이 오류가 발생합니까? 어셈블리를 빌드하는 동안 이 오류 메시지가 표시되면 pom.xml 파일에 아래 줄을 추가해야 합니다.
1 |
< tarLongFileMode > posix < / tarLongFileMode > |
첫 번째 시도에서 위의 오류가 발생했습니다. 그래서 이미 위의 pom.xml 파일에 tarLongFileMode
를 추가했습니다.
7단계
이제 how to verify
합니까? 프로젝트의 target
폴더로 이동하여 아래 명령을 실행하여 .tag.gz file contents
을 확인하세요.
bash-3.2$ tar zxvf CrunchifyMavenBuildPlugins-0.0.1-SNAPSHOT-bundle.tar.gz

질문이 있고 이를 실행하는 데 문제가 있으면 알려주십시오.