プロジェクト

全般

プロフィール

NetBeans JavaFXアプリケーションのビルドをmavenで行う

NetBeansは、7.4位から標準でmavenツールを使ったビルドにも対応するようになりました。
NetBeansでmavenを使ってJavaFXアプリケーションをビルドする際のプロジェクト設定のメモです。

はじめに

この記事の確認環境は次のとおりです。

項目 環境
OS 日本語版Windows 7 64bit
Java Java SE 8 RC1 (b128)
NetBeans NetBeans 8.0 Beta Java SE版

NetBeans標準のMavenによるJavaFXアプリケーションプロジェクト

新規プロジェクトでカテゴリ欄にMavenがあり、これを選択しプロジェクト種類でJavaFXアプリケーションを選択します。画面を次に示します。

新規プロジェクトでカテゴリ欄にMavenを選択したときの画面

デフォルトで生成されるディレクトリ・ファイル構造

プロジェクト基点ディレクトリ
  +-- nb-configuration.xml
  +-- nbactions.xml
  +-- pom.xml
  +-- src
        +-- main
              +-- java
              |     +-- com
              |           +-- torutk
              |                 +-- hellojavafx
              |                       +-- FXMLController.java
              |                       +-- MainApp.java
              +-- resources
                    +-- fxml
                    |     +-- Scene.fxml
                    +-- styles
                          +-- Styles.css

NetBeans標準のMavenでのJavaFXアプリケーションビルドの問題

NetBeans標準のMavenでのJavaFXアプリケーションビルドには、JNLP(Java Web Start形式)やネイティブインストーラ生成機能が不足しています。

これを補う方法として、MavenのプラグインであるJavaFX Maven Pluginを使用する方法があります。

JavaFX Maven Pluginのご紹介 - HASUNUMA Kenjiさんの記事

JavaFX Maven PluginをNetBeansで使用する

MavenでJavaFXアプリケーションをビルド・実行するためのプラグインMaven JavaFX Pluginを使用すると、JARへの電子署名やネイティブインストーラの作成が可能になります。

JavaFX Maven Plugin ホームページ

pomファイルの修正

NetBeansが生成したJavaFXアプリケーション用pom.xmlを修正します。
修正箇所は、<plugins>~</plugins>の中です。デフォルトのpom.xmlの<plugins>~</plugins>をそっくり削除し、次に差し替えます。

        <plugins>
            <plugin>
                <groupId>com.zenjava</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>2.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>

プロジェクトプロパティでアクションの修正

次に、NetBeans上で実行やビルドをするときのMavenのゴールを、デフォルトのものからJavaFX Maven Pluginのものに修正します。
プロジェクトウィンドウで対象プロジェクトを右クリックし、ポップアップメニューから[プロパティ]を選択します。
カテゴリ欄で[アクション]を選択し右側ペインで修正するアクションを選択、ゴールの実行欄にJavaFX Maven Pluginが提供するゴールを記述します。

プロジェクトのプロパティでカテゴリ欄のアクションをクリック

以下が変更の一例です。空欄は調査中(というかよく分からないです・・・)。

アクション NetBeansデフォルト JavaFX Maven Plugin
プロジェクトのビルド install jfx:jar
プロジェクトの消去 clean
プロジェクトを消去してビルド clean install clean jfx:jar
依存性でビルド install jfx:jar
プロジェクトのテスト test
ファイルのテスト test-compile surefire:test
プロジェクトの実行 clean package org.codehaus.mojo:exec-maven-plugin:1.2.1:exec clean jfx:run
main()経由でファイルを実行 process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec
プロジェクトのデバッグ clean package org.codehaus.mojo:exec-maven-plugin:1.2.1:exec
main()経由でファイルをデバッグ process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec
テストのデバッグ test-compile surefire:test
プロジェクトをプロファイル process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec
main()経由でファイルをプロファイル process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec
Javadocを生成 generate-sources javadoc:javadoc

クリップボードから画像を追加 (サイズの上限: 1 GB)