
Java Builder antara Ant, Maven, dan Gradle – Bila kalian progammer pemula bahasa java, tidak usah bingung untuk memilih Java Builder, Setidaknya ada 3 java builder yang sering digunakan saat ini. Bahkan saya sering menggunakan Ant daripada Maven dan Gradle. Namun Ant terkadang bikin repot karena kita harus add path depencies nya secara manual, berbeda dengan maven dan gradle yang berbasis repository.
Ant
Ant adalah java builder legendaris bawaan hampir semua IDE java seperti netbeans dan eclipse. Bahkan saya sering menggunakan ant untuk hampir semua aplikasi yang ditulis menggunakan java, misalkan pada pengembangan aplikasi berbasis Image Processing OpenCV, seperti tutorial https://softscients.com/2020/11/10/belajar-opencv/#gsc.tab=0
Namun ketika saya butuh library seperti pengolahan data berbasis tabular (table saw) yang menggunakan Maven dan Gradle untuk repository, ini jadi kesulitan di Ant
Maven
Maven menggunakan XML untuk melakukan pengaturan depenciesnya tidak sepraktis gradle. Okelah masalah itu hanya kebiasaan saja, namun ketika kita akan buat package *.jar koq susah ya, tidak seperti di ant dengan klik Build saja. Saya temui hal ini ketika menggunakan OpenCV. Padahal udah setting main.app yaitu com.mycompany.mavenproject2.NewJFrame sebagai main class nya pada pom.xml nya
<build> <plugins> <plugin> <version>3.0.2</version> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>com.mycompany.mavenproject2.NewJFrame</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build>
jadi ketika sudah ada *.jar nya hasil build dari maven mavenproject2-1.0-SNAPSHOT.jar. Ketika di jalankan via command prompt, opencv tidak terinclude (mungkin ada pengaturan lain yang belum dipahami)
java -jar mavenproject2-1.0-SNAPSHOT.jar
Nampaknya lebih mudah menggunakan gradle
Gradle
Gradle juga digunakan pada android bila kalian buat aplikasi berbasis android, maka tools builder ini yang digunakan. Berikut adalah contoh library yang saya gunakan dalam membuat aplikasi berbasis machine learning – weka
implementation group: 'tech.tablesaw', name: 'tablesaw-core', version: '0.38.3' implementation group: 'org.openpnp', name: 'opencv', version: '4.3.0-2' implementation group: 'nz.ac.waikato.cms.weka', name: 'weka-stable', version: '3.8.0'
Keterangan yaitu
- implementation group: ‘tech.tablesaw’, name: ‘tablesaw-core’, version: ‘0.38.3’ untuk mengolah data berbasis data tabular
- implementation group: ‘org.openpnp’, name: ‘opencv’, version: ‘4.3.0-2’ untuk image processing
- implementation group: ‘nz.ac.waikato.cms.weka’, name: ‘weka-stable’, version: ‘3.8.0’ untuk machine learning
kemudian untuk package ke jar (gradle menggunakan *.zip dan *.tar) untuk membungkus project build nya, cukup tambahkan perintah berikut pada build.gradle
jar { manifest { attributes( 'Class-Path': configurations.compile.collect { it.getName() }.join(' '), 'Main-Class': 'gradleproject1.NewJFrame' ) } }
Maka ketika kita build akan terdapat 2 file yang siap kita share ke client yaitu build\distributions
Ukuranya jadi bengkak karena semuanya dimasukan