如何在不使用 eclipse 的情况下从终端为我的 java Web 应用程序项目创建 war 文件

How to create a war file for my java web application project from terminal without using eclipse

我有一个 java Web 应用程序项目 (maven),我想在 tomcat 服务器上提供服务。我想从中创建一个 .war 文件,这样我就可以将它放在 webapps 中 directory.I 知道从 eclipse 我可以通过导出来完成,但我需要通过终端来完成。我也尝试过 jar cvf example.war * 命令,但是当我将 war 文件放入 webapps 目录时 tomcat 无法读取我的 java 应用程序。 有人可以指导我如何从 tomcat 可以读取的终端创建 war 文件。

步骤:

  • 导航到适当的目录(假设是桌面)并使用 maven-archetype-webapp 启动一个简单的 webapp maven 项目。例如:

    mvn archetype:generate -DgroupId=com.mywebapp.www -DartifactId=MyWebApp -DarchetypeArtifactId=maven-archetype-webapp

参见:Introduction to Maven Archetypes

  • 创建项目后,导航到包含 pom.xml 的目录并使用:

    mvn 包

  • 完成第 2 步后,导航到 target 目录,您会在其中找到生成的 MyWebApp.war

  • Copy-paste MyWebApp.war 到 tomcat webapps 目录并启动 tomcat 服务器(./startup.sh).

  • 如您所见,我们现在可以访问 URL http://localhost:8080/MyWebApp/.

供您参考 -

index.jsp:

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mywebapp.www</groupId>
  <artifactId>MyWebApp</artifactId>
  <packaging>war</packaging>
  <version>1</version>
  <name>MyWebApp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>MyWebApp</finalName>
  </build>
</project>

希望对您有所帮助。

在pom.xml中,添加以下行

<packaging>war</packaging>    // Replace <packaging>jar</packaging> if jar packaging already present

然后进入项目的父目录,进入mvn package。 war 文件将在

中生成
/parent_directory/target/myproject.war

如果您想以 http://localhost:8080 而不是 http://localhost:8080/myproject 的身份访问您的项目,请将 myproject.war 重命名为 ROOT.war 并将 war 文件粘贴到tomcat 目录。