当前位置: 首页 > 知识库问答 >
问题:

Java Web应用程序无法作为maven项目运行

苍兴怀
2023-03-14

我是新来的java。我使用apache netbean 12.2版本来创建新项目,java版本是17。我按照步骤创建java Web应用程序与maven,但当我建立它,并试图运行它,我得到以下错误在控制台窗口。

无法执行目标org.apache.maven.plugins:maven-war插件:2.3:战争(default-war)在项目JavaProject:执行default-war的目标org.apache.maven.plugins:maven-war插件:2.3:战争失败:无法加载mojo'war'在插件<--plhd-2/>: maven-war-plugin: 2.3'由于API不兼容:org.codehaus.plexus.component.repository.exception.ComponentLookupExc0019: 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

共有1个答案

单昊穹
2023-03-14

您的Java版本与您的NetBeans版本不兼容,因为NetBeans 12.2不支持使用JDK 17。从NetBeans 12.2发行说明下载Apache NetBeans 12.2:

Apache NetBeans 12.2运行于JDK LTS版本8和11,以及JDK 15,即本次NetBeans发布时的当前JDK版本。

一般来说,在更改NetBeans和/或Java的版本时,请确保这些版本是兼容的。这始终记录在NetBeans发行说明中。

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

  • 升级到NetBeans 12.6,支持Java17。
  • 保持在NetBeans 12.2,但降级到Java15或更低。也就是说,使JDK 15(或更低)成为NetBeans 12.2的默认平台。

当然,你的项目可能还有其他问题,但是在你解决这个问题之前,没有必要担心这些问题。

 类似资料:
  • 我正在使用intellij idea ide,当我试图将我的libgdx项目作为桌面应用程序运行时,我得到了以下消息。

  • 我有一个简单的java应用程序-maven项目在我的Netbean IDE。 在我创建Maven Web Application并添加第一个项目作为依赖项之后,Netbean显示一切都很好,我也可以使用所有方法。 但在运行时,我会 在不创建多模块JavaEE应用程序的情况下,是否有可能使web项目依赖于简单的java应用程序?

  • 我目前正在使用Android Studio 1.2开发一个Android应用程序 我想在Android应用程序中使用外部Java项目作为依赖项。这个Java项目是一个Maven项目 如何将此项目作为依赖项添加到Android应用程序中,以便在Android应用程序中引用Java/Maven项目的类? Android应用程序是使用Grandle构建的。

  • 我很高兴netbeans 9.0刚刚发布,但我无法在netbeans 9.0中创建Maven Web应用程序项目。 创建新项目时,在Maven类别中没有Web应用程序选项可供选择。 我查看了这篇帖子,但是没有可用的JavaEE插件。 我在系统范围内启用了Java10。 在netbeans 9.0之前,我在Java 8中使用netbeans 8.2,没有问题。

  • 无法使用maven运行spring启动应用程序。当我运行命令mvn spring boot:run时,我收到:,但在pom中。我写的xml,其中是使用该示例的主要类: 我有这个项目结构: 我希望使用spring boot和maven运行我的应用程序。但现在它不起作用了。

  • 我试图在Netbeans上创建一个项目。我试着在我的个人笔记本电脑上安装了Netbeans。安装后,我打开IDE并尝试创建新项目NewProject- 此图像包含错误