Ant vs Maven vs Gradle

Ant Vs Maven Vs Gradle



ในระหว่างการพัฒนาซอฟต์แวร์ นักพัฒนาจะต้องสร้างโค้ดเดิมซ้ำแล้วซ้ำอีก พวกเขามักจะพยายามใช้สคริปต์ทุบตีหรือภาษาสคริปต์อื่นๆ เพื่อทำให้งานเป็นแบบอัตโนมัติ อย่างไรก็ตาม มีเครื่องมือสร้างที่เหมาะสมกว่าสำหรับการสร้างระบบอัตโนมัติ เครื่องมือสร้างที่โดดเด่นคือ:

มาตรวจสอบเครื่องมือเพื่อหาข้อมูลเพิ่มเติมกัน







Apache Ant กับ Ivy

Apache Ant เป็นเครื่องมือบรรทัดคำสั่งที่ใช้ Java ที่ใช้ไฟล์ XML เพื่อกำหนดสคริปต์บิลด์ ส่วนใหญ่จะใช้สำหรับการสร้าง Java แต่ยังสามารถใช้สำหรับการพัฒนา C/C++ งานในตัวมีวิธีในการคอมไพล์ ประกอบ ทดสอบ และรันแอพพลิเคชั่นซอฟต์แวร์ ผู้ใช้ยังสามารถสร้าง antlibs ของตนเองเพื่อเพิ่มประสิทธิภาพการทำงานของ Ant Apache Ivy เป็นเครื่องมือจัดการการพึ่งพาที่รวมเข้ากับ Ant ได้อย่างง่ายดายเพื่อให้มีระบบนิเวศที่แข็งแกร่งยิ่งขึ้น การพัฒนา Ant เริ่มต้นในปี 2000



ข้อดี



  • ควบคุมกระบวนการสร้างโดยรวมได้ดีขึ้น
  • ยืดหยุ่นพอที่จะทำงานกับทุกกระบวนการทำงาน

ข้อเสีย





  • ไฟล์บิลด์แบบ XML สามารถขยายขนาดใหญ่และไม่สามารถบำรุงรักษาได้
  • จำเป็นต้องใช้เวลาและทรัพยากรจำนวนมากในการรักษาสคริปต์บิลด์
  • การรวม IDE นั้นทำได้ยาก

ตัวอย่างมดกับไม้เลื้อย

คุณสามารถติดตั้ง Ant ล่าสุดจาก ที่นี่ . คุณต้องดาวน์โหลดไฟล์ zip ขยายและวางโฟลเดอร์ bin ในเส้นทางของคุณ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อดูว่า Ant ได้รับการติดตั้งอย่างถูกต้องหรือไม่:

$ ant-รุ่น
Apache Ant(TM)เวอร์ชั่น 1.10.1 เรียบเรียงเมื่อเดือนกุมภาพันธ์2 2017

เมื่อคุณติดตั้ง Ant แล้ว คุณสามารถดาวน์โหลด Ivy jar ล่าสุดและใส่ไว้ในโฟลเดอร์ lib ภายในไดเร็กทอรี Ant



หลังจากที่คุณติดตั้ง Ant แล้ว ให้สร้างโฟลเดอร์ helloworld และ helloworld/src ภายในโฟลเดอร์ src ให้ใส่ไฟล์ helloworld.java พร้อมรหัส:

/ ********************************

พิมพ์ 'สวัสดีชาวโลก!'

********************************* /

สาธารณะ ระดับสวัสดีชาวโลก{

สาธารณะ คงที่ โมฆะหลัก( สตริง []args) {
ระบบ .ออก.println('สวัสดีชาวโลก!');
}

}

ตอนนี้ในโฟลเดอร์ helloworld ให้สร้างไฟล์ build.xml ด้วยรหัสต่อไปนี้:

xmlns:ไอวี่='antlib:org.apache.ivy.ant' ชื่อ='สวัสดีชาวโลก' ค่าเริ่มต้น='ไห'>

ชื่อ='src.dir' ค่า='src'/>
ชื่อ='build.dir' ค่า='สร้าง'/>
ชื่อ='classes.dir' ค่า='${build.dir}/คลาส'/>
ชื่อ='am.dir' ค่า='$ {build.dir} / bin'/>
ชื่อ='lib.dir' ค่า='ลิบ' />
NS='lib.path.id'>
ถึงคุณ='$ {lib.dir}' />
>

ชื่อ='แก้ไข'>
/>
>

ชื่อ='ทำความสะอาด'>
ถึงคุณ='$ {build.dir}'/>
>

ชื่อ='รวบรวม' พึ่งพา='แก้ไข'>
ถึงคุณ='$ {classes.dir}'/>
srcdir='$ {src.dir}' destdir='$ {classes.dir}' classpathref='lib.path.id'/>
>

ชื่อ='ไห' พึ่งพา='รวบรวม'>
ถึงคุณ='$ {bin.dir}'/>
destfile='${bin.dir}/${ant.project.name}.jar' basedir='$ {classes.dir}'/>
>

>

และในโฟลเดอร์ helloworld เดียวกัน ให้สร้างไฟล์ ivy.xml ด้วยรหัสต่อไปนี้:

รุ่น='2.0'>
องค์กร='org.apache' โมดูล='สวัสดีชาวโลก'/>
>
องค์กร='จูนิท' ชื่อ='จูนิท' rev='4.12'/>
>
>

โครงสร้างไดเร็กทอรีควรมีลักษณะดังนี้:

สวัสดีชาวโลก
|-- build.xml
| - ivy.xml
`--- src
`- helloworld.java

ตอนนี้คุณสามารถรันบิลด์ด้วยคำสั่ง:

$มดไห

บิลด์ที่ประสบความสำเร็จควรให้ผลลัพธ์ดังนี้:

$ โถมด
Buildfile: /Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build.xml

แก้ไข:
[ivy:retrieve] :: Apache Ivy 2.4.0 - 20141213170938 :: http://ant.apache.org/ivy/ ::
[ivy:retrieve] :: กำลังโหลดการตั้งค่า :: url = jar:file:/Users/zak/BuildTools/ANT/apache
-ant-1.10.1/lib/ivy-2.4.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:retrieve] :: การแก้ไขการพึ่งพา :: org.apache#helloworld; [ป้องกันอีเมล]
MacBook-Air.local
[ivy:retrieve] confs: [ค่าเริ่มต้น]
[ivy:retrieve] พบ Junit#junit;4.12 ในที่สาธารณะ
[ivy:retrieve] พบ org.hamcrest#hamcrest-core;1.3 ในที่สาธารณะ
[ivy:retrieve] :: รายงานความละเอียด :: แก้ไข 397ms :: artifacts dl 15ms
-------------------------------------------------- --------------------
| | โมดูล || สิ่งประดิษฐ์ |
| conf | หมายเลข| ค้นหา|ทรุดตัว|ถูกขับไล่|| เลขที่ | ทรุดตัว |
-------------------------------------------------- --------------------
| ค่าเริ่มต้น | 2 | 0 | 0 | 0 || 4 | 0 |
-------------------------------------------------- --------------------
[ivy:retrieve] :: กำลังดึงข้อมูล :: org.apache#helloworld
[ivy:retrieve] confs: [ค่าเริ่มต้น]
[ivy:retrieve] คัดลอกสิ่งประดิษฐ์ 0 รายการ ดึงข้อมูลแล้ว 4 รายการ (0kB/39ms)

รวบรวม:
[mkdir] สร้าง dir: /Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build/
ชั้นเรียน
[javac] /Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build.xml:22: คำเตือน:
ไม่ได้ตั้งค่า 'includeantruntime' โดยค่าเริ่มต้น build.sysclasspath=last; ตั้งเป็นเท็จ
สำหรับงานสร้างที่ทำซ้ำได้
[javac] กำลังรวบรวม 1 ไฟล์ต้นฉบับไปยัง /Users/zak/_work/LearnBuildScripts/LearnANT/
สวัสดีชาวโลก/สร้าง/คลาส

ไห:
[mkdir] สร้าง dir: /Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build/bin
[jar] การสร้าง jar: /Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build/bin/
helloworld.jar

สร้างความสำเร็จ
เวลาทั้งหมด: 6 วินาที

คุณสามารถลองใช้ไฟล์ jar ได้ดังนี้:

$ java -cp build/bin/helloworld.cpไหสวัสดีชาวโลก
สวัสดีชาวโลก!

เราได้กำหนดไฟล์ jar ที่จะวางในโฟลเดอร์ build/bin โฟลเดอร์ถูกสร้างขึ้นระหว่างการสร้าง คำสั่ง ant jar เรียก jar เป้าหมายใน build.xml

Maven

Maven ได้รับการพัฒนาเพื่อแก้ไขปัญหาที่ต้องเผชิญกับสคริปต์ที่ใช้ Ant มันเก็บไฟล์ XML ไว้แต่ใช้แนวทางที่ต่างออกไปในองค์กร ใน Ant นักพัฒนาต้องสร้างงานทั้งหมด Maven ลดการสร้างงานโดยใช้มาตรฐานที่เข้มงวดยิ่งขึ้นสำหรับการจัดระเบียบโค้ด ส่งผลให้เริ่มต้นโครงการมาตรฐานได้ง่ายขึ้น

นอกจากนี้ยังแนะนำการดาวน์โหลดแบบพึ่งพาซึ่งทำให้การพัฒนาง่ายขึ้น ก่อนการเปิดตัว Ivy ใน Ant ผู้ใช้ต้องจัดการการพึ่งพาในเครื่อง Maven นำปรัชญาการจัดการการพึ่งพามาใช้ก่อน

อย่างไรก็ตาม มาตรฐานที่เข้มงวดของ Mavens ทำให้ยากต่อการเขียนสคริปต์บิลด์แบบกำหนดเอง เครื่องมือนี้ใช้งานง่ายตราบใดที่โครงการปฏิบัติตามมาตรฐานที่เข้มงวด

ข้อดี

  • ดาวน์โหลดการพึ่งพาอัตโนมัติ
  • การขึ้นต่อกันทั้งหมดจะถูกบันทึกโดยอัตโนมัติในการควบคุมแหล่งที่มาซึ่งเป็นส่วนหนึ่งของสคริปต์ Maven
  • สร้างมาตรฐานและทำให้กระบวนการสร้างง่ายขึ้น
  • รวมเข้ากับระบบ IDE และ CI/CD ได้อย่างง่ายดาย

ข้อเสีย

  • ไม่ยืดหยุ่นในการสร้างเวิร์กโฟลว์แบบกำหนดเอง
  • เส้นโค้งการเรียนรู้ที่สูงชันและกระบวนการยากสำหรับสามเณรที่จะเข้าใจ
  • ใช้เวลานานในการแก้ปัญหาการสร้างและการรวมไลบรารีใหม่
  • ไม่ดีกับการพึ่งพาเดียวกันหลายเวอร์ชัน

ตัวอย่าง Maven

คุณสามารถดาวน์โหลด Maven ล่าสุดได้จาก ที่นี่ . คุณสามารถตรวจสอบการติดตั้งดังนี้:

$ mvn --version
Apache Maven 3.5.2(138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T00:58:13-07: 00)
หน้าแรกของ Maven: /Users/zak/BuildTools/Maven/apache-maven-3.5.2
เวอร์ชัน Java: 1.8.0_74 ผู้ขาย: Oracle Corporation
หน้าแรกของ Java: /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/สารบัญ/Home/jre
สถานที่เริ่มต้น: en_US การเข้ารหัสแพลตฟอร์ม: UTF-8
ชื่อระบบปฏิบัติการ:'mac os x', รุ่น:'10 .11.6 ', โค้ง:'x86_64', ตระกูล:'แม็ค'

สร้างโฟลเดอร์ helloworld และสร้างโครงการด้วยคำสั่งต่อไปนี้:

$ mvn ต้นแบบ:สร้าง -DgroupId=com.ชื่อ บริษัท.สวัสดีชาวโลก-DartifactId = สวัสดีชาวโลก
-DarchetypeArtifactId = maven-archetype-quickstart -DinteractiveMode =เท็จ

ควรสร้างโครงสร้างโฟลเดอร์และสร้างผลลัพธ์ที่มีลักษณะดังนี้:

[INFO] กำลังสแกนหาโครงการ...
[ข้อมูล]
[ข้อมูล] ----------------------------------------------------- --------------------------------------
[INFO] โครงการสร้าง Maven Stub (No POM) 1
[ข้อมูล] ----------------------------------------------------- --------------------------------------
[ข้อมูล]
[INFO] >>> maven-archetype-plugin:3.0.0:generate (default-cli) > generate-sources
@สแตนด์อโลน-ปอม >>>
[ข้อมูล]
[ข้อมูล]<<< maven-archetype-plugin:3.0.0:generate (default-cli) < generate-sources
@ สแตนด์อโลน-ปอม<<<
[ข้อมูล]
[ข้อมูล]
[INFO] --- maven-archetype-plugin:3.0.0:generate (default-cli) @ standalone-pom ---
[INFO] กำลังสร้างโครงการในโหมดแบทช์
[ข้อมูล] ----------------------------------------------------- ------------------------------------
[INFO] การใช้พารามิเตอร์ต่อไปนี้สำหรับการสร้างโครงการจาก Archetype เก่า (1.x):
maven-archetype-quickstart:1.0
[ข้อมูล] ----------------------------------------------------- ------------------------------------
[INFO] พารามิเตอร์: basedir ค่า: /Users/zak/_work/LearnBuildScripts/LearnMaven
[INFO] พารามิเตอร์: package, Value: com.companyname.helloworld
[INFO] พารามิเตอร์: groupId, ค่า: com.companyname.helloworld
[INFO] พารามิเตอร์: artifactId ค่า: helloworld
[INFO] พารามิเตอร์: packageName, ค่า: com.companyname.helloworld
[INFO] พารามิเตอร์: รุ่น, ค่า: 1.0-SNAPSHOT
[INFO] โครงการที่สร้างจาก Old (1.x) Archetype ใน dir: /Users/zak/_work/
LearnBuildScripts/LearnMaven/helloworld
[ข้อมูล] ----------------------------------------------------- --------------------------------------
[INFO] สร้างความสำเร็จ
[ข้อมูล] ----------------------------------------------------- --------------------------------------
[INFO] เวลาทั้งหมด: 8.602 s
[INFO] สิ้นสุดเมื่อ: 2018-01-27T00:05:37-08:00
[INFO] หน่วยความจำสุดท้าย: 15M/152M
[ข้อมูล] ----------------------------------------------------- --------------------------------------

โครงสร้างโฟลเดอร์ควรมีลักษณะดังนี้:

สวัสดีชาวโลก
|- pom.xml
``-- src
|-- หลัก
| ``-จาวา
| ``-- กับ
| ``-- ชื่อ บริษัท
| ``-- สวัสดีชาวโลก
| ``- App.java
``-ทดสอบ
``-จาวา
``-- กับ
``-- ชื่อ บริษัท
``-- สวัสดีชาวโลก
``- AppTest.java

pom.xml มีการกำหนดค่าบิลด์ ภายใน pom.xml โค้ดจะมีลักษณะดังนี้:

xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/
XMLSchema-อินสแตนซ์'
xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0
_0.xsd'>
>4.0.0>
>com.companyname.helloworld>
>สวัสดีชาวโลก>
>ไห>
>1.0-SNAPSHOT>
>สวัสดีชาวโลก>
>http://maven.apache.org>
>
>
>Junit>
>Junit>
>3.8.1>
>ทดสอบ>
>
>
>

คุณสามารถสร้างไฟล์ jar โดยใช้คำสั่งต่อไปนี้:

แพ็คเกจ $ mvn

[INFO] กำลังสแกนหาโครงการ...
[ข้อมูล]
[ข้อมูล] ----------------------------------------------------- --------------------------------------
[INFO] สร้างโลกสวัสดี 1.0-SNAPSHOT
[ข้อมูล] ----------------------------------------------------- --------------------------------------
[ข้อมูล]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helloworld ---
[คำเตือน] การใช้การเข้ารหัสแพลตฟอร์ม (จริง ๆ แล้วเป็น UTF-8) เพื่อคัดลอกทรัพยากรที่กรองแล้ว เช่น
บิลด์ขึ้นอยู่กับแพลตฟอร์ม!
[INFO] ข้ามที่ไม่มี resourceDirectory /Users/zak/_work/LearnBuildScripts/LearnMaven/
สวัสดีชาวโลก/src/main/resources
[ข้อมูล]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ helloworld ---
[INFO] ตรวจพบการเปลี่ยนแปลง - กำลังคอมไพล์โมดูลใหม่!
[คำเตือน] ไม่ได้ตั้งค่าการเข้ารหัสไฟล์ โดยใช้การเข้ารหัสแพลตฟอร์ม UTF-8 เช่น บิลด์คือ
ขึ้นอยู่กับแพลตฟอร์ม!
[INFO] กำลังรวบรวม 1 ไฟล์ต้นฉบับไปยัง /Users/zak/_work/LearnBuildScripts/LearnMaven/
สวัสดีชาวโลก/เป้าหมาย/คลาส
[ข้อมูล]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @
สวัสดีชาวโลก ---
[คำเตือน] การใช้การเข้ารหัสแพลตฟอร์ม (จริง ๆ แล้วเป็น UTF-8) เพื่อคัดลอกทรัพยากรที่กรองแล้ว เช่น
บิลด์ขึ้นอยู่กับแพลตฟอร์ม!
[INFO] ข้ามที่ไม่มี resourceDirectory /Users/zak/_work/LearnBuildScripts/LearnMaven/
สวัสดีชาวโลก/src/test/resources
[ข้อมูล]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ helloworld ---
[INFO] ตรวจพบการเปลี่ยนแปลง - กำลังคอมไพล์โมดูลใหม่!
[คำเตือน] ไม่ได้ตั้งค่าการเข้ารหัสไฟล์ โดยใช้การเข้ารหัสแพลตฟอร์ม UTF-8 เช่น บิลด์คือ
ขึ้นอยู่กับแพลตฟอร์ม!
[INFO] กำลังรวบรวม 1 ไฟล์ต้นฉบับไปยัง /Users/zak/_work/LearnBuildScripts/LearnMaven
/helloworld/target/test-classes
[ข้อมูล]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ helloworld ---
[INFO] ไดเรกทอรีรายงาน Surefire: /Users/zak/_work/LearnBuildScripts/LearnMaven
/สวัสดีชาวโลก/เป้าหมาย/
รายงานแน่นอน

-------------------------------------------------- -----
ที อี เอส ที ซ
-------------------------------------------------- -----
กำลังเรียกใช้ com.companyname.helloworld.AppTest
เรียกใช้การทดสอบ: 1 ความล้มเหลว: 0, ข้อผิดพลาด: 0, ข้าม: 0, เวลาที่ผ่านไป: 0.014 วินาที

ผลลัพธ์ :

เรียกใช้การทดสอบ: 1 ความล้มเหลว: 0, ข้อผิดพลาด: 0, ข้าม: 0

[ข้อมูล]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ helloworld ---
[INFO] การสร้าง jar: /Users/zak/_work/LearnBuildScripts/LearnMaven/helloworld/target/
helloworld-1.0-SNAPSHOT.jar
[ข้อมูล] ----------------------------------------------------- --------------------------------------
[INFO] สร้างความสำเร็จ
[ข้อมูล] ----------------------------------------------------- --------------------------------------
[INFO] เวลาทั้งหมด: 5.624 s
[INFO] สิ้นสุดเมื่อ: 2018-01-27T00:11:10-08:00
[INFO] หน่วยความจำสุดท้าย: 16M/114M
[ข้อมูล] ----------------------------------------------------- --------------------------------------

คุณสามารถเรียกใช้ไฟล์ jar ได้ดังนี้:

$ java -cp เป้าหมาย/helloworld-1.0-สแน็ปช็อตไหกับ.ชื่อ บริษัท.สวัสดีชาวโลก.แอป
สวัสดีชาวโลก!

ไฟล์ jar ถูกวางในโฟลเดอร์เป้าหมาย

Gradle

Gradle รวมพลังของ Ant และ Maven Gradle เวอร์ชันแรกเปิดตัวในปี 2555 ซึ่งได้รับการตอบรับอย่างรวดเร็ว ขณะนี้ Google ใช้สำหรับระบบปฏิบัติการ Android

Gradle ใช้ภาษา Groovy แทน XML ด้วยเหตุนี้ สคริปต์บิลด์ใน Gradle จึงเขียนและอ่านได้ง่ายขึ้น ตอนแรกมันใช้ Ivy สำหรับการจัดการการพึ่งพา แต่ตอนนี้มันใช้เครื่องมือการพึ่งพาของตัวเอง

ข้อดี

  • ให้มาตรฐานในขณะที่ยังคงความยืดหยุ่น
  • ง่ายต่อการอ่านและเขียนบิลด์สคริปต์
  • ดีกว่าในการจัดการการพึ่งพาหลายเวอร์ชัน
  • สามารถจัดการภาษาและเทคโนโลยีการเขียนโปรแกรมได้หลายภาษา
  • ชุมชนที่กระตือรือร้นช่วยพัฒนาเครื่องมือ
  • Gradle DSL (ภาษาเฉพาะโดเมน) ทำให้โครงสร้างการกำหนดค่าที่เรียบง่าย
  • Gradle ให้การปรับปรุงประสิทธิภาพโดยใช้ส่วนเพิ่ม สร้างแคช และ Gradle Daemon

ข้อเสีย

  • การรวม IDE ไม่ดีเท่าMaven

ตัวอย่าง Gradle

คุณสามารถติดตั้ง Gradle จาก ที่นี่ . เมื่อคุณตั้งค่า Gradle ในเส้นทางของคุณแล้ว คุณสามารถตรวจสอบได้โดย:

$ gradle--รุ่น

-------------------------------------------------- ----------
Gradle4.5
-------------------------------------------------- ----------

เวลาสร้าง:2018-01-24 17: 04:52UTC
แก้ไข: 77d0ec90636f43669dc794ca17ef80dd65457bec

Groovy: 2.4.12
Ant: Apache Ant(TM)เวอร์ชั่น 1.9.9 เรียบเรียงเมื่อเดือนกุมภาพันธ์2 2017
JVM: 1.8.0_74(Oracle Corporation25.74-b02)
ระบบปฏิบัติการ: Mac OS X 10.11.6 x86_64

ถัดไป สร้างโครงสร้างไดเร็กทอรีต่อไปนี้:

สวัสดีชาวโลก
| -สร้าง.gradle
``-src
| -หลัก
``-จาวา
``-สวัสดีชาวโลก
``-สวัสดีชาวโลก.จาวา

สำหรับ helloworld.java ให้ใส่โค้ดจากตัวอย่าง Ant และสำหรับ build.gradle ให้ใส่รหัสต่อไปนี้:

ใช้ปลั๊กอิน: 'จาวา'

รุ่น= '1.0'

ที่เก็บ{
mavenCentral()
}

การพึ่งพา{
testCompile group: 'จูนิท', ชื่อ: 'จูนิท', รุ่น: '4.12'
}

คุณสามารถใช้คำสั่ง gradle –all เพื่อดูคำสั่งทั้งหมดที่มีได้ Gradle จะเลือกปลั๊กอินที่คุณระบุในไฟล์ build.gradle โดยอัตโนมัติ และแสดงงานพิเศษที่มีให้เนื่องจากปลั๊กอิน

คุณสามารถรับบิลด์ได้โดยการเรียกใช้:

$ โหล gradle

สร้าง ประสบความสำเร็จ ใน 1 วินาที
2งานที่ดำเนินการได้:2ถูกประหารชีวิต

คุณสามารถเรียกใช้ jar ของคุณดังนี้:

$ java -cp build/libs/helloworld-1.0.ไหสวัสดีชาวโลก
สวัสดีชาวโลก!

ไฟล์ jar อยู่ในโฟลเดอร์ build/libs

บทสรุป

ในบรรดาเครื่องมือสร้าง Ant สามารถเป็นประโยชน์สำหรับโครงการขนาดเล็กในขณะที่ Maven ดีกว่าเพื่อให้แน่ใจว่านักพัฒนาทั้งหมดปฏิบัติตามกฎเดียวกัน Gradle เป็นเครื่องมือล่าสุดที่ให้ความยืดหยุ่นสูงสุด

ข้อมูลอ้างอิง: