我的基本工作流程mvn clean install在我的基本目录的终端中.这将创建一个带有WAR文件的目标目录.我将该war文件复制到我的Tomcat的webapps目录中.
如果我做出改变,我显然必须重复这个单调乏味的过程.我正在使用Intellij Ultimate 13.1.6,我知道可以通过基于本指南的IDE完成所有这些工作.
所以在我开始之前,我mvn clean在我的基础上运行,删除了目标目录.
现在开始我进入项目结构 - >工件并创建一个新的Web应用程序:存档.我将它命名为project_name,默认情况下它有一个不同的输出目录(baseDir/out/artifacts/project_name vs baseDir/target),我将所有内容保留为默认值并点击确定.
现在我转到Run - > Edit Configurations并使用以下设置创建一个新的Local Tomcat Server
在部署选项卡中,我添加了在我的图片中看到的在Before发布之前构建的工件.非常直截了当.
但是,每当我通过Intellij运行服务器时,它都会成功启动,但不会部署任何内容.我收到错误:
Artifact project_name: com.intellij.javaee.oss.admin.jmx.JmxAdminException: com.intellij.execution.ExecutionException: /Users/path/to/workspace/project_name/out/artifacts/project_name/project_name.war not found for the web module.
我仔细检查我的目录,如错误中所示,没有创建任何内容.甚至没有out目录.
我究竟做错了什么?我知道一个解决方法是返回终端,运行mvn clean install并使用创建的.war文件,将其放入部署配置中.我觉得这更像是一个黑客攻击,因为我仍然通过命令行执行它,如果我没有它已经构建,我不能将目标设置为查找war文件的目录.
任何帮助表示赞赏.
关于这个网站有很多问题,请放心,我已经检查了它们,但没有找到我的答案.
我真的是IntelliJ的新手.这是我的编辑配置截图.请帮我在这个IDE中添加tomcat服务器,我知道如何在Eclipse中完成它,但Intellij给了我很多时间.

我使用最新版本的 Java -> 16。当我运行 mvn clean 时,出现无法初始化类 org.apache.maven.plugin.war.util.WebappStructureSerializer错误。我读到添加 maven-war-plugin 可以是一个解决方案,但它对我不起作用。当我运行 mvn install 时,出现以下错误:
错误注入构造函数,java.lang.ExceptionInInitializerError: 在定位 org.apache.maven.plugin.war.WarMojo 时无法访问org.apache.maven.plugin.war.WarMojo.(Unknown Source)处的属性的默认字段
我该如何解决这些问题?它们是由Java版本引起的吗?
<modelVersion>4.0.0</modelVersion>
<groupId>web-programming</groupId>
<artifactId>servlet-demo</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>16</java.version>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.source>${java.version}</maven.compiler.source>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.1.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Optional. Allows the app to be run by simply typing mvn jetty:run -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.4</version>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.13</version>
</dependency>
</dependencies>
<configuration>
<contextPath>/</contextPath>
<scanIntervalSeconds>10</scanIntervalSeconds>
<connectors>
<connector …Run Code Online (Sandbox Code Playgroud)