如何使用命令行创建WAR文件?

时间:2015-03-25 00:40:24

标签: maven jboss war pom.xml siesta

我安装了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文件的方法。我写了一个小脚本,它将为我创建一个特定目录的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 *”时,它没有相同的结果。

EDIT2:

jar -cvf my-app.war myfolder/

我的应用程序使用TomCat,我使用以下内容:

cd Siesta/WebContent
jar -cvf Siesta.war *

3 个答案:

答案 0 :(得分:3)

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

mvn package

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

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

部分有效的包装值为 jar war ear pom 。如果未指定包装值,则默认为 jar

更多详情herehere

答案 1 :(得分:2)

好的,这是一个已经存在的SO,有很多关于如何创建war文件的可能性:How to create war files

我个人更喜欢Maven而不是任何其他构建场景 - 因为我从ANT迁移起来我首先不喜欢Maven,但是在投入一两天之后投入到文档中:http://maven.apache.org/pom.html我开始喜欢它。在您的情况下,您只需重构您的项目以满足maven标准文件结构,并为包含pom.xml而非默认{{war的源创建最小Maven项目(又名jar文件)。 1}}。

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

jar cvf my-app.war

请查看以下内容:https://docs.oracle.com/javase/tutorial/deployment/jar/build.html以获取受支持选项的完整参考。

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

(另请注意,我会花时间与maven取得联系,因为之后您了解了一个严肃的构建工具,并且能够创建jarear,{{1}在标准过程中)。

答案 2 :(得分: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>

来源:How to create a Web application from the Command Line