subrutin
a sequence of programmer life

Advertisement

Setup Environment Development JavaFX (Untuk Maven)

0 263

Sebelumnya, subrutin telah membahas bagaimana programmer dapat mensetup environment yang sesuai untuk memulai memprogram dengan JavaFX SDK menggunakan Eclipse IDE. Tapi terkadang, dalam bekerja bersama tim project, masing – masing programmer biasanya memiliki IDE favoritnya sendiri – sendiri, sementara setiap IDE memiliki struktur projectnya sendiri – sendiri.

Oleh karena itu, penting untuk membuat project java yang bersifat IDE agnostik, artinya dapat digunakan oleh sembarang IDE, bahkan mereka yang biasa menggunakan text editor semacam vscode masih dapat turut urun membangun project. Itulah salah satu kegunaan Maven. Dalam ulasan kali ini, penulis akan menunjukkan bagaimana menyiapkan project pertama menggunakan Maven

  • Prasyarat Perangkat Lunak

Berikut adalah prasyarat perangkat lunak yang sudah harus terinstal pada mesin komputer. ( Pembaca dapat merujuk ke tautan yang disertakan untuk menginstal perangkat lunak tersebut )

Advertisement

  • Generate archetype

Buka terminal atau command prompt pada mesin komputer, lalu ketik perintah berikut untuk membuat sebuah project maven

mvn archetype:generate -DgroupId=com.subrutin -DartifactId=maven-javafx -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

Ketika pertama kali mengeksekusi perintah tersebut, Maven akan terhubung ke internet dan proses akan memakan waktu beberapa saat tergantung koneksi internet yang digunakan. Namun ketika perintah tersebut dijalankan untuk kedua kalinya dan selanjutnya, Maven tidak perlu lagi terhubung ke internet. Karena archetype tersebut telah disimpan di dalam cache folder m2 maven.

  • Ubah pom.xml

Ubah project java untuk Java 11 dengan mengganti tag maven.compiler.source dan mave.compiler.target pada pom.xml  menjadi 11

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>

Berikutnya tambahkan dependensi javafx-controls pada tag dependecies

<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>11</version>
</dependency>

Lalu tambahkan plugin javafx di dalam tag plugins

<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.3</version>
    <configuration>
        <mainClass>com.subrutin.javafx.App</mainClass>
    </configuration>
</plugin>

Advertisement

Hasil akhir pom.xml yang telah diubah adalah sebagai berikut

<?xml version="1.0" encoding="UTF-8"?>

<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>com.subrutin</groupId>
    <artifactId>maven-javafx</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>maven-javafx</name>
    <!-- FIXME change it to the project's website -->
    <url>https://subrutin.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven 
                defaults (may be moved to parent pom) -->

            <plugins>
                <plugin>
                    <groupId>org.openjfx</groupId>
                    <artifactId>javafx-maven-plugin</artifactId>
                    <version>0.0.3</version>
                    <configuration>
                        <mainClass>com.subrutin.javafx.App</mainClass>
                    </configuration>
                </plugin>
                
                <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
                <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
                <plugin>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.7.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>
  • Import Project ke IDE

Setelah pengatuan pom.xml selesei dilakukan, programmer dapat mengimpor project ke dalam IDE atau text editor  yang disukai (dapat menggunakan Eclipse IDE, IntelijIDEA atau VSCode)

Misalnya jika menggunakan Eclipse IDE, melaui menu File > Import > Existing Maven Projects lalu pilih project mana yang ingin diimpor

 

  • Ubah program App

Ubah program pada App.java menjadi sebagai berikut

package com.subrutin.javafx;

import javafx.application.Application;
import javafx.stage.Stage;

/**
 * Hello world!
 *
 */
public class App extends Application
{
    public static void main( String[] args )
    {
        Application.launch(args);

    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("My First JavaFX App using Maven");

        primaryStage.show();
        
    }
}
  • Menjalankan Program

Terlebih dahulu pastikan mainClass pada konfigurasi pugin javafx-maven-plugin pada pom.xml telah sesuai.

<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.3</version>
    <configuration>
        <mainClass>com.subrutin.javafx.App</mainClass>
    </configuration>
</plugin>

 

Programmer dapat menjalankan program dengan menggunakan perintah berikut

mvn clean javafx:run

 

advertisement

Get real time updates directly on you device, subscribe now.

Tinggalkan pesanan

Alamat email anda tidak akan disiarkan.