將 JavaFX 專案更新到版本 17.0.1 時,javafx-maven-plugin版本號為 0.0.5 或更高的任何版本都會發出新的警告訊息。
警告資訊是:
Module name not found in <mainClass>. Module name will be assumed from module-info.java
重現步驟
在任何方便的目錄中,執行以下命令以創建新的 JavaFX 專案:
mvn archetype:generate \
-DarchetypeGroupId=org.openjfx \
-DarchetypeArtifactId=javafx-archetype-simple \
-DarchetypeVersion=0.0.3 \
-DgroupId=org.openjfx \
-DartifactId=example \
-Dversion=1.0.0 \
-Djavafx-version=17.0.1
創建專案后,cd進入example目錄并運行:
mvn clean javafx:run
在我的系統上,會打開一個視窗并顯示文本:
Hello, JavaFX 17.0.1, running on Java 17.0.1.
這正如預期的那樣。pom.xml專案目錄中的檔案使用插件的 0.0.3 版本。的相關區域pom.xml如下所示:
...
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.3</version>
<configuration>
<mainClass>org.openjfx.App</mainClass>
</configuration>
</plugin>
...
更改為更新版本的插件(當前版本為 0.0.8。)并重新運行程式。在我的系統上,該程式仍按預期運行,但會產生警告訊息。
使用更新版本的專案原型(例如-DarchetypeVersion=0.0.6 \)會立即產生警告,因為它創建了一個使用更新插件的專案。
檢查插件的來源
檢查https://github.com/openjfx/javafx-maven-plugin上的插件源顯示檔案已更改JavaFXBaseMojo.java。在 0.0.5 版本中添加了一個新函式,后來被呼叫createMainClassString以顯示錯誤。
一些系統資訊
mvn -version
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /usr/local/Cellar/maven/3.8.4/libexec
Java version: 17.0.1, vendor: Homebrew, runtime: /usr/local/Cellar/openjdk/17.0.1_1/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "12.1", arch: "x86_64", family: "Mac"
我沒有看到專案或 POM 有任何問題。我需要做什么來消除警告?
uj5u.com熱心網友回復:
我最近在這里遇到了同樣的問題:
當執行該命令
mvn javafx:run時,javafx-maven-plugin產生以下情況:[WARNING] Module name not found in <mainClass>. Module name will be assumed from module-info.java。所述mainClass配置屬性是“完全合格的名稱,帶或不帶模塊名。” 雖然可以安全地忽略警告,但添加模塊名稱可以消除警告:
- <mainClass>org.jfree.chart3d.fx.demo.OrsonChartsFXDemo</mainClass>
<mainClass>org.jfree.fx.demos/org.jfree.chart3d.fx.demo.OrsonChartsFXDemo</main
使用您的示例,以下配置消除了警告:
<configuration>
<mainClass>org.openjfx/org.openjfx.App</mainClass>
</configuration>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/398195.html
