ใน Java วิธีสร้าง .jar / .tar.gz / .zip ไฟล์เก็บถาวรโดยใช้ maven-assembly-plugin? บทช่วยสอนโครงการ 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 รวมถึง Dependencies ทั้งหมดหรือไม่ -
maven-shade-plugin
– สร้าง Java+Spring ที่ปฏิบัติการได้ .jar พร้อมการอ้างอิงคุณสมบัติและทรัพยากรที่จำเป็นทั้งหมด
คุณมีคำถามด้านล่างหรือไม่? บทช่วยสอนนี้จะได้ผลเช่นกัน
- จะสร้างไฟล์ jar ด้วย Maven ได้อย่างไร?
- วิธีใช้ maven เพื่อสร้างไฟล์ jar ด้วยการพึ่งพา
- ใช้ pom.xml เพื่อสร้าง jar
- วิธีที่ดีที่สุดในการสร้าง maven jar โดยไม่ต้องพึ่งพา
- วิธีสร้าง maven jar รวมถึงการพึ่งพา
มาเริ่มกันเลยกับ maven-assembly-plugin
ขั้นตอนที่ 1
สร้างโครงการ Maven ใหม่ในสภาพแวดล้อม Eclipse ตั้งชื่อเป็น CrunchifyMavenBuildPlugins
หากคุณมีโครงการเว็บไดนามิกหรือโปรเจ็กต์ Java อยู่แล้ว ใช้ขั้นตอนเหล่านี้เพื่อแปลงโปรเจ็กต์เป็นโปรเจ็กต์ maven หลังจากแปลงโปรเจ็กต์เป็น Maven คุณจะเห็นไฟล์ pom.xml
ที่สร้างขึ้นซึ่งเราต้องการสำหรับบทช่วยสอนนี้
นี่คือโครงสร้างโครงการของฉัน ฉันกำลังใช้โปรเจ็กต์ที่มีอยู่ซึ่งมี 8 java files
ภายใต้แพ็คเกจ /src/com/crunchify/tutorials

ขั้นตอนที่ 2
เปิดไฟล์ pom.xml ของโปรเจ็กต์ของคุณให้เพิ่ม <plugin></plugin>
line 28 to 38
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
package เราได้อ้างอิงไฟล์นี้แล้วในไฟล์ 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
- zip
- ทาร์
แท็ก <directory>
แสดงว่า – รับทุกอย่างภายใต้แพ็คเกจ src/com/crunchify/tutorial
และวางไว้ใต้โฟลเดอร์ crunchify-output
ซึ่งถูกกล่าวถึงภายใต้แท็ก <outputDirectory>
หากคุณต้องการรวมทุกอย่าง เช่น /src
หรือ /resource
เนื้อหาของโฟลเดอร์ คุณสามารถใช้รูปแบบต่างๆ ด้านล่าง:
- <directory>
src/com/crunchify/tutorial
</directory> - <directory>
src
</directory> : ทุกอย่างในโฟลเดอร์ src - <directory>
resources
</directory> : ทุกอย่างภายใต้โฟลเดอร์ทรัพยากร - <directory>
/
</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 > |
ฉันได้รับข้อผิดพลาดข้างต้นในการพยายามครั้งแรกของฉัน ดังนั้นได้เพิ่ม tarLongFileMode
ไปยังไฟล์ pom.xml ด้านบนแล้ว
ขั้นตอนที่ 7
ตอนนี้ how to verify
ได้อย่างไร ? โปรดไปที่โฟลเดอร์ target
ของโปรเจ็กต์และเรียกใช้คำสั่งด้านล่างเพื่อดู .tag.gz file contents
ของคุณ
bash-3.2$ tar zxvf CrunchifyMavenBuildPlugins-0.0.1-SNAPSHOT-bundle.tar.gz

แจ้งให้เราทราบหากคุณมีคำถามใด ๆ และประสบปัญหาใด ๆ ในการดำเนินการนี้