15

我安装了 JBoss Developer Studio,可以通过“鼠标右键项目 > 导出 > WAR 文件”创建 WAR 文件,但我想使用命令行将我的项目导出到 WAR 文件。

我已经安装了 maven,这是 Studio 的要求之一,我读到我可以使用 maven 生成一个 WAR 文件,但我需要一个名为 pom.xml 的文件。当我搜索我的工作区和项目时,pom.xml 丢失了。我可能需要手动创建 pom.xml 但我不确定如何。

我的项目的目录树如下:

Siesta
├── build
│   └── classes
├── src
└── WebContent
    ├── extjs
    ├── extjs-4.2.0
    ├── extjs-4.2.2
    ├── index.jsp
    ├── META-INF
    ├── siesta
    ├── tests
    └── WEB-INF

如何使用命令行为我的 Maven / JBoss 项目创建 WAR 文件?我使用 Linux 并且不希望创建 pom.xml 文件,但如果没有其他方法,那么我将使用 xml 文件来生成 war 文件。

编辑:

所以jar是创建war文件的方法。我编写了一个小脚本,它将为我创建一个特定目录的战争文件。

#!/bin/bash
cd Siesta/WebContent/
jar -cvf ../../Siesta.war *
cd -

然后,如果您在 ubuntu 的 zip 实用程序或存档管理器中打开 war 文件,您将看到此结构

    ├── extjs
    ├── extjs-4.2.0
    ├── extjs-4.2.2
    ├── index.jsp
    ├── META-INF
    ├── siesta
    ├── tests
    └── WEB-INF

我必须将 CD 放入我想要创建一个令人讨厌的 war 文件的目录。我认为使用 jar 的 -C 选项可能有更好的方法,但是当我使用“jar -cvf Siesta.war -C Siesta/WebContent *”时,它没有相同的结果。

编辑2:

jar -cvf my-app.war myfolder/

为了让我的应用程序在 TomCat 上运行,我使用以下内容:

cd Siesta/WebContent
jar -cvf Siesta.war *
4

3 回答 3

6

好吧,这里有一个已经存在的 SO,其中有几种关于如何创建战争文件的可能性:如何创建战争文件

我个人更喜欢 Maven,而不是任何其他构建方案 - 因为我从 ANT 迁移,所以我一开始并不喜欢 Maven,但是在文档中投入了一两天之后:http ://maven.apache.org/pom.html我开始喜欢它。在您的情况下,您所需要的只是重构您的项目以满足 Maven 标准文件结构,并pom.xml为您的源创建一个最小的 Maven 项目(又名文件),该项目具有打包war而不是默认的jar.

如果您只想坚持使用控制台并且不使用除 JDK 提供的构建助手之外的任何构建助手,您可以使用以下内容创建您的战争:

jar cvf my-app.war

看看这个:https ://docs.oracle.com/javase/tutorial/deployment/jar/build.html以获得支持选项的完整参考。

(注意:基于 Java 的 Web 应用程序上下文中的“战争”遵循标准格式:http ://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html ,而技术“.war”文件是与重命名为“.zip”的 ZIP 压缩文件夹相同。)

(另外请注意,我真的会花时间与 maven 取得联系,因为在那之后您会了解一个严肃的构建工具,并且将能够在标准流程中创建jar,ear等)。war

于 2015-03-25T07:48:51.877 回答
6

如果这是一个Maven项目,则打开控制台,导航到pom.xml文件所在的位置,然后运行:

mvn package

它将在${basedir}/target目录下创建{artifactId}-{version}.war文件。这假定您的POM 元素在您的pom.xml文件中设置为。packagingwar

<project ...>
    ...
    <packaging>war</packaging>
    ...
</project>

一些有效的包装值是jarwarearpom。如果未指定包装值,则默认为jar

更多细节在这里这里

于 2017-09-09T01:14:04.140 回答
0

最简单的选择(如果您使用 Maven)是使用 maven-archetype-webapp 创建它:

 mvn archetype:generate -DgroupId=com.sample -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

然后,您可以优化您的 pom.xml 以包含所需的依赖项,例如:

<dependency>
    <groupId>jakarta.platform</groupId>
    <artifactId>jakarta.jakartaee-api</artifactId>
    <version>8.0.0</version>
    <scope>provided</scope>
</dependency>

资料来源:如何从命令行创建 Web 应用程序

于 2021-07-28T13:48:06.723 回答