EclipseのMaven ArchetypeリストにJavaFXを追加する方法、またはMavenを使用してJavaFXアプリケーションを構築するプラグインがあるかどうかを確認したいと思います。
Mavenで利用できる javafx-maven-plugin があります。
Java 8で開発する場合、そのプラグインをビルドプラグインとして配置するだけで、それ以上の依存関係はありません。
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.8.3</version>
<configuration>
<mainClass>your.main.class.which.extends.javafx.Application</mainClass>
</configuration>
</plugin>
mvn jfx:jar
を呼び出すと、target/jfx/app/yourapp-jfx.jar
内にjavafx-application-jarが作成されます。また、mvn jfx:native
を呼び出すと、ネイティブランチャー(EXEファイルなど)が作成されます。
免責事項:私はjavafx-maven-pluginのメンテナーです。
JavaFXアプリケーションを構築するためにpom.xml
に追加する唯一のものは、この依存関係です。
<dependency>
<groupId>com.Oracle</groupId>
<artifactId>javafx</artifactId>
<version>2.2</version>
<systemPath>${Java.home}/lib/ext/jfxrt.jar</systemPath>
<scope>system</scope>
</dependency>
これは、Java8 JREでjavafx jarをフェッチしてプロジェクトに追加するだけです。次に、maven-Assembly-plugin
を使用して、依存関係を持つjarをビルドします。
それが役に立てば幸い。
この回答は https://openjfx.io/openjfx-docs/#maven にあるドキュメントからコピーされます。詳細な情報(完全なサンプルpom.xmlリファレンスを含む)は、提供されているリンクから入手できます。
PomはJavaFX Mavenプラグインを使用します。
<plugins>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.3</version>
<configuration>
<mainClass>HelloFX</mainClass>
</configuration>
</plugin>
</plugins>
Mavenの依存関係を追加します。
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>13</version>
</dependency>
</dependencies>
アプリケーションを実行します(例:参照サンプルのHelloFX.Javaに基づく):
mvn clean javafx:run
他の古い回答に関する注意
com.zenjava
javafx-maven-plugin
を参照する以前の(投票数の多い)回答は、最新のJavaFXバージョンで動作するようにコーディングされていないため、古くなっています。 Javaバージョン10+の場合、org.openjfx
javafx-maven-plugin
を使用する必要があります。<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-Assembly-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>make-Assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
javaFXのバージョンが8.0にジャンプしたため、一般的なJavaアプリケーションとして実行します。JavaFXのサポートが組み込まれています。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>run application</id>
<phase>package</phase>
<goals>
<goal>Java</goal>
</goals>
<configuration>
<mainClass>cn.keepfight.intro.FXParamApp</mainClass>
<arguments>
<!--<argument>-Dsun.Java2d.opengl=true</argument>-->
</arguments>
</configuration>
</execution>
</executions>
</plugin>