是否有可能在Maven中的pom.xml中將JavaFX 2.0引用爲依賴項,以便一切順利進行?作爲Maven依賴關係的JavaFX 2
我this question有可能在本地安裝jfxrt.jar看到的,但最好我想一個簡單的方法,把依賴可以得到妥善解決,沒有任何地方黑客下載....
是否有可能在Maven中的pom.xml中將JavaFX 2.0引用爲依賴項,以便一切順利進行?作爲Maven依賴關係的JavaFX 2
我this question有可能在本地安裝jfxrt.jar看到的,但最好我想一個簡單的方法,把依賴可以得到妥善解決,沒有任何地方黑客下載....
不,這種解決方案暫時不存在。我懷疑它會永遠,因爲從Java 1.7更新2開始,JavaFX與JVM一起安裝。從Java 1.8(明年)開始,計劃將JavaFX包含在JRE中。從此,你根本不需要依賴。
但是現在已經可以使用Maven與JavaFX了,因爲Maven可以調用Ant任務(antrun插件),並且JavaFX發行版中提供了超級Ant任務。我在博客上發帖,但是用法文:Creer un projet Maven pour JavaFX2。它會引導您完成整個過程。儘管如此,如果您不懂法語,請對文章發表評論,我會盡力幫助您或在此處查看the Oracle forum
謝爾蓋的文章建議將javafx作爲系統依賴項添加,這不應該是用過的。相反,您可以在POM中包含以下內容來自動安裝javafx。
<profile>
<id>install-javafx</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>install-javafx</id>
<goals>
<goal>install-file</goal>
</goals>
<phase>validate</phase>
<configuration>
<file>${jfx-runtime}/lib/jfxrt.jar</file>
<groupId>javafx</groupId>
<artifactId>javafx</artifactId>
<version>${jfx-version}</version>
<packaging>jar</packaging>
<javadoc>${jfx-runtime}/../docs/api.zip</javadoc>
<!--<sources>no source available</sources>-->
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>install-javafx-bin</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${settings.localRepository}/javafx/javafx</outputDirectory>
<useBuildFilters>false</useBuildFilters>
<resources>
<resource>
<directory>${jfx-runtime}</directory>
<includes>
<include>bin/*.dll</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
如果您想安裝api文檔,請將docs/api文件夾的內容壓縮到docs/api.zip。現在,您只需運行maven,並激活配置文件並設置jfx-runtime和jfx-version屬性。
第一我已經看到了這個解決方案,並且相信這是做到這一點的正確方法。希望這是最主張的方式。你如何建議我們處理'$ {jfx-runtime}'和'$ {jfx-version}'。只需在'
我有屬性中的硬編碼版本,因爲那樣我可以在依賴關係中重用它。運行時路徑不應該被硬編碼,因爲它取決於平臺。 – Cephalopod 2012-07-03 07:36:18
這是避免系統依賴的典型「正確」/認可方式。這也是*典型的怪異複雜的方式(以避免系統依賴) – javadba 2015-08-11 03:47:39
這裏是一個可能的解決方案。
在您的項目目錄中創建一個lib
文件夾,並將jfxrt.jar放入該目錄中。
<dependency>
<groupId>com.oracle</groupId>
<artifactId>javafx</artifactId>
<version>2.2.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/jfxrt.jar</systemPath>
</dependency>
如果你想建立一個可執行的JAR,你只需要包含javafx-maven-plugin
。欲瞭解更多信息,請參見:link-to-github
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>1.3</version>
<configuration>
<mainClass>[put your application main class here]</mainClass>
</configuration>
</plugin>
我使用java.home而不是project.basedir,這意味着我不需要將jfxrt.jar放入我的項目中。 – disrvptor 2014-01-15 02:29:35
添加到這個已經很好的答覆,我只是想指出亞當邊的帖子:http://www.adam-bien.com/roller/abien/entry/how_to_compile_java_fx – 2012-06-27 15:58:54