Intellij Idea Maven在运行JavaFX应用程序后报告的“插件验证问题”是什么?

o3imoua4  于 2023-08-03  发布在  Maven
关注(0)|答案(2)|浏览(144)

我使用IntelliJ IDEA 2023.2 RC提供的JavaFX template创建了一个新的JavaFX/OpenJFX项目。同时使用Java和JavaFX版本20。
在IntelliJ的 Maven 面板中运行我的应用程序时,选择 * 插件> javafx > javafx:run*,退出应用程序后,在IntelliJ的控制台面板中出现以下警告:

[WARNING] 
[WARNING] Plugin validation issues were detected in 2 plugin(s)
[WARNING] 
[WARNING]  * org.openjfx:javafx-maven-plugin:0.0.8
[WARNING]  * org.apache.maven.plugins:maven-resources-plugin:3.3.0
[WARNING] 
[WARNING] For more or less details, use 'maven.plugin.validation' property with one of the values (case insensitive): [BRIEF, DEFAULT, VERBOSE]
[WARNING]

字符串
请注意,这些警告直到退出我的应用程序的执行 * 之后 * 才会出现在控制台上。
👉🏼 这些警告的含义是什么?如何解决这些问题?
第一个是最新版本。第二个几乎是最新的,3.3.0,而最新的是3.3.1。因此,我认为版本控制不是问题所在。
正如警告所提示的那样,我尝试在POM中定义该属性。但这样做没有任何效果。我在控制台中看不到任何其他详细信息。

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.plugin.validation>VERBOSE</maven.plugin.validation>
    </properties>


我找到了现有的问题Plugin validation issues were detected in plugin(s)。但这些答案似乎都与我的处境无关。
Web searching未显示任何有用的信息。
我稍微修改了POM,使其看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>work.basil.voters</groupId>
    <artifactId>voters_wa</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>Voters WA</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.plugin.validation>VERBOSE</maven.plugin.validation>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>20</version>
        </dependency>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>20</version>
        </dependency>

        <dependency>
            <groupId>org.controlsfx</groupId>
            <artifactId>controlsfx</artifactId>
            <version>11.1.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.10.0</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.11.0</version>
                <configuration>
                    <source>20</source>
                    <target>20</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.8</version>
                <executions>
                    <execution>
                        <!-- Default configuration for running with: mvn clean javafx:run -->
                        <id>default-cli</id>
                        <configuration>
                            <mainClass>work.basil.voters.voters_wa/work.basil.voters.voters_wa.HelloApplication</mainClass>
                            <launcher>app</launcher>
                            <jlinkZipName>app</jlinkZipName>
                            <jlinkImageName>app</jlinkImageName>
                            <noManPages>true</noManPages>
                            <stripDebug>true</stripDebug>
                            <noHeaderFiles>true</noHeaderFiles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

lmvvr0a8

lmvvr0a81#

属性maven.plugin.validation不能在项目pom.xml中设置,它由Maven内部使用。
maven-resources-plugin已在3.3.1版中修复
请参阅 Apache Maven 文档:https://maven.apache.org/guides/plugins/validation/index.html

rqenqsqc

rqenqsqc2#

这对我来说很难复制。要做到这一点,除了在问题中的说明:

  • 我用的是Idea 2023.1.4旗舰版
  • 我将JAVA_HOME环境变量改为指向OpenJDK 20.0.2安装。
  • javafx-maven-plugin run命令使用了我最初在17时使用的JAVA_HOME的Java版本,而不是Idea中配置的版本,因此由于提供的Maven pom.xml要求仅使用Java 20+,因此导致类版本不匹配。
  • 我更改了idea配置,使用来自项目maven Package 器的Maven版本,而不是idea中的内置版本。
  • 将项目/.mvn/maven-wrapper.properties中的Maven版本更改为:
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.3/apache-maven-3.9.3-bin.zip

字符串

  • 3.9以上的版本不执行插件验证,我的maven Package 器属性中的默认值是3.8.x版本。
  • 已刷新maven项目。
  • 右键单击maven面板中的javafx:run
  • 修改了运行配置,将运行命令设置为:
-Dmaven.plugin.validation=verbose javafx:run -f pom.xml

  • 已运行新配置。

在完成运行后,我在输出中收到一个警告:

[WARNING]  * org.openjfx:javafx-maven-plugin:0.0.8
[WARNING]   Plugin EXTERNAL issue(s):
[WARNING]    * Plugin mixes multiple Maven versions: [3.3.9, 3.6.0]
[WARNING]    * Plugin should declare Maven artifacts in `provided` scope. If the plugin already declares them in `provided` scope, update the maven-plugin-plugin to latest version. Artifacts found with wrong scope: [org.apache.maven:maven-core:3.6.0, org.apache.maven:maven-plugin-api:3.6.0]


因此,这似乎是关于javafx-maven-plugin:0.0.8问题的警告(这似乎不会影响其实际操作)。也许一个bug或问题报告可以提交给插件开发人员,要求他们解决警告。
关于org.apache.maven.plugins:maven-resources-plugin:3.3.0的警告对我来说没有发生,因为我的设置已经使用了org.apache.maven.plugins:maven-resources-plugin:3.3.1,这在Slawomir's answer中被指出是固定的。
如Slawomir所述,有关插件验证的更多信息,请参阅:

相关问题