Setup Environment Development JavaFX (Untuk Maven)
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 )
- OpenJDK 11 (klik tautan berikut untuk petunjuk menginstal OpenJDK11 dari Redhat)
- Eclipse IDE
- Maven (klik tautan ini untuk petunjuk menginstal Maven)
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