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アプリケーションを選択します。画面を次に示します。
デフォルトで生成されるディレクトリ・ファイル構造¶
プロジェクト基点ディレクトリ +-- 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への電子署名やネイティブインストーラの作成が可能になります。
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 |