unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Build Tools

Build Tools #

Di ekosistem Java, terdapat beberapa build tools yang sering digunakan untuk mengelola, membangun, dan mendistribusikan proyek. Beberapa build tools yang populer di antaranya adalah:

  1. Apache Maven
  2. Gradle
  3. Apache Ant

Berikut penjelasan singkat dan cara inisiasi proyek untuk masing-masing build tools tersebut:

Apache Maven #

Maven adalah build tool yang berbasis pada Project Object Model (POM) yang menggunakan file XML (pom.xml) untuk mengelola proyek, dependencies, dan konfigurasi build.

Cara Inisiasi Maven #

  1. Menggunakan Command Line:

    Jika Maven telah terinstal, Anda bisa menginisiasi proyek baru dengan perintah berikut:

    mvn archetype:generate -DgroupId=com.example -DartifactId=nama-proyek -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    

    Penjelasan:

    • groupId: Nama unik yang digunakan untuk mengelompokkan proyek Anda (misalnya, com.example).
    • artifactId: Nama proyek (misalnya, nama-proyek).
    • maven-archetype-quickstart: Archetype yang digunakan untuk membuat proyek dasar dengan struktur standar Maven.
  2. Menggunakan IDE (IntelliJ IDEA, Eclipse, VSCode):

    • IntelliJ IDEA:

      • Pilih New Project.
      • Pilih Maven dari daftar project types.
      • Isi groupId, artifactId, dan informasi lain yang diperlukan.
      • Klik Finish untuk menginisiasi proyek.
    • Eclipse:

      • Pilih File -> New -> Maven Project.
      • Pilih Create a simple project (skip archetype selection).
      • Isi groupId, artifactId, dan informasi lain.
      • Klik Finish untuk membuat proyek.

Gradle #

Gradle adalah build tool yang modern dan fleksibel yang menggunakan DSL berbasis Groovy atau Kotlin untuk konfigurasi build. Gradle lebih fleksibel dibandingkan Maven dan lebih sering digunakan untuk proyek Android.

Cara Inisiasi Gradle #

  1. Menggunakan Command Line:

    Jika Gradle sudah terinstal, Anda dapat menginisiasi proyek baru dengan perintah berikut:

    gradle init
    

    Proses ini akan menuntun Anda melalui serangkaian pilihan untuk membuat proyek baru (apakah akan menggunakan Groovy atau Kotlin DSL, apakah proyek tersebut adalah proyek aplikasi Java, pustaka, dll.).

  2. Menggunakan IDE (IntelliJ IDEA, Eclipse, VSCode):

    • IntelliJ IDEA:

      • Pilih New Project.
      • Pilih Gradle dari daftar project types.
      • Pilih Java (atau bahasa lain) sebagai framework.
      • Klik Next, lalu isi groupId, artifactId, dan informasi lain yang diperlukan.
      • Klik Finish untuk menginisiasi proyek.
    • Eclipse:

      • Install plugin Gradle jika belum terinstal (Eclipse Buildship).
      • Pilih File -> New -> Other.
      • Pilih Gradle -> Gradle Project.
      • Ikuti wizard untuk menyelesaikan pembuatan proyek.

Apache Ant #

Ant adalah build tool yang lebih tua dibandingkan Maven dan Gradle, dan menggunakan file XML (build.xml) untuk mendefinisikan tugas build. Ant sangat fleksibel, tetapi membutuhkan lebih banyak konfigurasi manual dibandingkan Maven dan Gradle.

Cara Inisiasi Ant #

  1. Menggunakan Command Line:

    Ant tidak memiliki perintah bawaan untuk menginisiasi proyek seperti Maven atau Gradle. Sebagai gantinya, Anda biasanya harus membuat file build.xml secara manual.

    Contoh file build.xml sederhana:

    <project name="NamaProyek" default="compile" basedir=".">
        <property name="src.dir" value="src"/>
        <property name="build.dir" value="build"/>
    
        <target name="init">
            <mkdir dir="${build.dir}"/>
        </target>
    
        <target name="compile" depends="init">
            <javac srcdir="${src.dir}" destdir="${build.dir}"/>
        </target>
    
        <target name="clean">
            <delete dir="${build.dir}"/>
        </target>
    </project>
    

    Anda bisa memulai dengan struktur direktori yang sederhana dan membuat file build.xml sesuai kebutuhan proyek Anda.

  2. Menggunakan IDE (IntelliJ IDEA, Eclipse):

    • IntelliJ IDEA:

      • Pilih New Project.
      • Pilih Java sebagai project type, kemudian klik Next.
      • Setelah proyek dibuat, Anda dapat menambahkan file build.xml manual untuk mengelola build dengan Ant.
    • Eclipse:

      • Pilih File -> New -> Project.
      • Pilih Java Project.
      • Setelah proyek dibuat, tambahkan file build.xml secara manual di root project.

Masing-masing build tool memiliki kelebihan dan kekurangannya sendiri. Maven dan Gradle lebih umum digunakan dalam proyek modern, sementara Ant lebih sering ditemukan di proyek-proyek lama atau dalam situasi di mana fleksibilitas build script yang tinggi diperlukan.

Struktur proyek adalah tata letak file dan direktori dalam proyek yang memudahkan pengelolaan kode, pengujian, dan pengemasan. Setiap build tool memiliki standar struktur proyeknya sendiri yang biasanya diikuti untuk mempermudah konfigurasi dan pengelolaan proyek.

Berikut penjelasan standar struktur proyek pada masing-masing build tools: Maven, Gradle, dan Ant.

Struktur Proyek Maven #

Maven memiliki struktur direktori standar yang harus diikuti untuk memudahkan pengelolaan dependensi, kompilasi, pengujian, dan pengemasan. Berikut adalah struktur proyek Maven yang umum:

my-app/
│
├── pom.xml
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── App.java
│   │   ├── resources/
│   │   │   └── application.properties
│   ├── test/
│       ├── java/
│       │   └── com/
│       │       └── example/
│       │           └── AppTest.java
│       └── resources/
│           └── test-config.properties
└── target/

Penjelasan:

  • pom.xml: File konfigurasi Maven yang berisi informasi tentang proyek, dependencies, plugin, dll.
  • src/main/java: Tempat untuk meletakkan kode sumber Java.
  • src/main/resources: Tempat untuk meletakkan file sumber daya (seperti file properti, file XML, dll.) yang digunakan dalam kode sumber.
  • src/test/java: Tempat untuk meletakkan kode pengujian unit (biasanya menggunakan JUnit atau TestNG).
  • src/test/resources: Tempat untuk meletakkan file sumber daya yang diperlukan selama pengujian.
  • target/: Direktori di mana Maven menghasilkan output build (misalnya, file .class, file JAR, dll.).

Struktur Proyek Gradle #

Gradle memiliki struktur proyek yang mirip dengan Maven, tetapi sedikit lebih fleksibel. Secara default, struktur proyek Gradle mengikuti konvensi berikut:

my-app/
│
├── build.gradle
├── settings.gradle
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── App.java
│   │   ├── resources/
│   │   │   └── application.properties
│   ├── test/
│       ├── java/
│       │   └── com/
│       │       └── example/
│       │           └── AppTest.java
│       └── resources/
│           └── test-config.properties
└── build/

Penjelasan:

  • build.gradle: File konfigurasi utama Gradle yang berisi konfigurasi build, dependencies, dan task.
  • settings.gradle: File yang mendefinisikan konfigurasi proyek jika Anda bekerja dengan multi-proyek (biasanya menyebutkan proyek-proyek yang tergabung).
  • src/main/java: Tempat untuk meletakkan kode sumber Java.
  • src/main/resources: Tempat untuk meletakkan file sumber daya.
  • src/test/java: Tempat untuk meletakkan kode pengujian unit.
  • src/test/resources: Tempat untuk meletakkan file sumber daya untuk pengujian.
  • build/: Direktori di mana Gradle menghasilkan output build.

Catatan: Gradle memungkinkan Anda mengubah struktur proyek ini melalui konfigurasi di build.gradle, tetapi menggunakan struktur standar memudahkan integrasi dengan alat dan plugin lain.

Struktur Proyek Ant #

Ant tidak memiliki struktur proyek yang baku seperti Maven atau Gradle, namun biasanya proyek Ant mengikuti struktur yang mirip untuk kemudahan pengelolaan. Berikut struktur yang sering digunakan:

my-app/
│
├── build.xml
├── src/
│   ├── com/
│   │   └── example/
│   │       └── App.java
├── test/
│   ├── com/
│   │   └── example/
│   │       └── AppTest.java
├── lib/
│   └── dependencies.jar
├── build/
│   ├── classes/
│   └── test-classes/
└── dist/
    └── my-app.jar

Penjelasan:

  • build.xml: File utama yang berisi skrip build Ant. Di sini, Anda mendefinisikan target dan task untuk kompilasi, pengujian, pembuatan JAR, dll.
  • src/: Tempat untuk meletakkan kode sumber.
  • test/: Tempat untuk meletakkan kode pengujian.
  • lib/: Direktori untuk menyimpan dependensi pihak ketiga yang tidak dikelola secara otomatis oleh Ant.
  • build/: Direktori di mana output dari proses kompilasi dan pengujian disimpan.
  • dist/: Direktori di mana hasil build akhir (misalnya file JAR) disimpan.

Catatan: Karena Ant lebih manual dalam hal konfigurasi, pengembang bebas mengatur struktur proyek mereka sendiri, tetapi mengikuti konvensi seperti di atas dapat membantu menjaga konsistensi dan kemudahan penggunaan.

Ringkasan #

  • Maven: Memiliki struktur proyek yang sangat standar dengan direktori seperti src/main/java dan src/test/java.
  • Gradle: Memiliki struktur yang mirip dengan Maven tetapi lebih fleksibel dan dapat dikustomisasi.
  • Ant: Tidak memiliki struktur proyek yang ketat, tetapi umumnya mengikuti konvensi yang serupa dengan Maven dan Gradle untuk kemudahan pengelolaan.
« Regex
Multi Threading »