【问题标题】:Java Web Application Failed to run as maven projectJava Web 应用程序无法作为 maven 项目运行
【发布时间】:2022-01-08 23:15:14
【问题描述】:

我是 java 新手。我正在使用 apache netbeans 12.2 版本创建新项目,java 版本为 17 。我按照步骤使用 maven 创建 java web 应用程序,但是当我构建它并尝试运行它时,我在控制台窗口中收到以下错误。

无法在项目 JavaProject 上执行目标 org.apache.maven.plugins:maven-war-plugin:2.3:war (default-war):执行目标 org.apache.maven.plugins 的默认战争: maven-war-plugin:2.3:war 失败:由于 API 不兼容,无法在插件 'org.apache.maven.plugins:maven-war-plugin:2.3' 中加载 mojo 'war':org.codehaus.plexus .component.repository.exception.ComponentLookupException: null

我在 pom.xml 文件中检查了所需的依赖项,但为什么它无法运行?。

这是 Pom.xml 代码。

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>JavaProject</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>JavaProject-1.0-SNAPSHOT</name>
    
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <jakartaee>8.0</jakartaee>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>${jakartaee}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    
     <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
           
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-api</artifactId>
                                    <version>${jakartaee}</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

这是带有错误消息的整个控制台。

Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.3:war (default-war) on project JavaProject: Execution default-war of goal org.apache.maven.plugins:maven-war-plugin:2.3:war failed: Unable to load the mojo 'war' in the plugin 'org.apache.maven.plugins:maven-war-plugin:2.3' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: null
-----------------------------------------------------
realm =    plugin>org.apache.maven.plugins:maven-war-plugin:2.3
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/Users/mohammadhossan/.m2/repository/org/apache/maven/plugins/maven-war-plugin/2.3/maven-war-plugin-2.3.jar
urls[1] = file:/Users/mohammadhossan/.m2/repository/org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar
urls[2] = file:/Users/mohammadhossan/.m2/repository/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar
urls[3] = file:/Users/mohammadhossan/.m2/repository/commons-cli/commons-cli/1.0/commons-cli-1.0.jar
urls[4] = file:/Users/mohammadhossan/.m2/repository/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar
urls[5] = file:/Users/mohammadhossan/.m2/repository/org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar
urls[6] = file:/Users/mohammadhossan/.m2/repository/org/codehaus/plexus/plexus-io/2.0.5/plexus-io-2.0.5.jar
urls[7] = file:/Users/mohammadhossan/.m2/repository/org/codehaus/plexus/plexus-archiver/2.2/plexus-archiver-2.2.jar
urls[8] = file:/Users/mohammadhossan/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar
urls[9] = file:/Users/mohammadhossan/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
urls[10] = file:/Users/mohammadhossan/.m2/repository/com/thoughtworks/xstream/xstream/1.4.3/xstream-1.4.3.jar
urls[11] = file:/Users/mohammadhossan/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
urls[12] = file:/Users/mohammadhossan/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar
urls[13] = file:/Users/mohammadhossan/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar
urls[14] = file:/Users/mohammadhossan/.m2/repository/org/apache/maven/shared/maven-filtering/1.0-beta-2/maven-filtering-1.0-beta-2.jar
Number of foreign imports: 1
import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

-----------------------------------------------------
: ExceptionInInitializerError: Unable to make field private final java.util.Comparator java.util.TreeMap.comparator accessible: module java.base does not "opens java.util" to unnamed module @73bb1337
-> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

【问题讨论】:

    标签: java maven netbeans


    【解决方案1】:

    您的 Java 版本与您的 NetBeans 版本不兼容,因为 NetBeans 12.2 不支持使用 JDK 17。来自 NetBeans 12.2 发行说明Downloading Apache NetBeans 12.2

    Apache NetBeans 12.2 在 JDK LTS 版本 8 和 11 以及 JDK 15,即本 NetBeans 时的当前 JDK 版本 释放。

    通常,在更改 NetBeans 和/或 Java 版本时,请确保版本兼容。这始终记录在 NetBeans 发行说明中。

    您有两种选择来解决这个问题:

    • 升级到支持 Java 17 的 NetBeans 12.6。
    • 继续使用 NetBeans 12.2,但降级到 Java 15 或更低版本。也就是说,将 JDK 15(或更低版本)设为 NetBeans 12.2 的默认平台。

    当然,您的项目可能还有其他问题,但在解决此问题之前,不必担心这些问题。

    【讨论】:

    • Netbeans 12.4 发行说明说它仍然支持 JDK 8、11 和 16,当我安装 12.4 时,我遇到了同样的错误。
    • @Shubham 好的。在这种情况下,请创建一个带有支持证据的新问题,因为 cmets 不是解决新问题的合适方法。但请注意,这个问题与项目创建有关。由于您声明您的问题与 NetBeans 的安装有关,因此它与这个问题在质量上有所不同,我不明白您在“安装 12.4”时如何获得与 OP 相同的“错误”(使用 Maven 项目) .那没有意义。 (但也许我误解了你,这也是 cmets 不是解决问题的好地方的另一个原因!)
    猜你喜欢
    • 2014-09-10
    • 1970-01-01
    • 2017-11-09
    • 2013-10-22
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2017-02-23
    相关资源
    最近更新 更多