cla*_*taq 5 javafx maven-plugin maven
javafx-maven-plugin
将 JavaFX 项目更新到版本 17.0.1 时,版本号为 0.0.5 或更高版本的任何版本都会发出新的警告消息。
警告消息是:
Module name not found in <mainClass>. Module name will be assumed from module-info.java
Run Code Online (Sandbox Code Playgroud)
在任何方便的目录中,执行以下命令来创建新的 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
Run Code Online (Sandbox Code Playgroud)
项目创建完成后,cd
进入example
目录并运行:
mvn clean javafx:run
Run Code Online (Sandbox Code Playgroud)
在我的系统上,会打开一个窗口并显示文本:
Hello, JavaFX 17.0.1, running on Java 17.0.1.
Run Code Online (Sandbox Code Playgroud)
这正如预期的那样。项目目录中的文件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>
...
Run Code Online (Sandbox Code Playgroud)
更改为更新版本的插件(当前版本是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"
Run Code Online (Sandbox Code Playgroud)
我没有发现该项目或 POM 有任何问题。我需要做什么才能消除警告?
我最近在这里遇到了同样的问题:
执行命令 时
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
Run Code Online (Sandbox Code Playgroud)
使用您的示例,以下配置消除了警告:
<configuration>
<mainClass>org.openjfx/org.openjfx.App</mainClass>
</configuration>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3000 次 |
最近记录: |