2015-03-25 64 views
6

我安装了JBoss Developer Studio,可以通过“右键项目>导出> WAR文件”创建一个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 

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

编辑:

所以罐子是去创建一个war文件的方式。我写了一个小脚本,将为我创建一个特定目录的战争文件。

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

然后,如果你打开一个压缩实用程序或在Ubuntu归档管理war文件,你会看到这种结构

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

我必须CD到该目录,我想创建一个其中的战争档案很烦人。我认为使用jar的-C选项可能会有更好的方法,但是当我使用“jar -cvf Siesta.war -C Siesta/WebContent *”时,它没有得到相同的结果。

EDIT2:

jar -cvf my-app.war myfolder/ 

对于我的应用程序在Tomcat上工作,我用的是以下几点:

cd Siesta/WebContent 
jar -cvf Siesta.war * 

回答

2

好吧,这里是一个已经就如何一对夫妇的可能性因此现有创建一个战争档案:How to create war files

我个人比较喜欢Maven而不是其他任何构建场景 - 因为我从ANT迁移过来,我不喜欢Maven,但在投入了一两天的文档之后:http://maven.apache.org/pom.html我开始喜欢它了。在你的情况下,你所需要的只是重构你的项目,以符合maven标准文件结构,并创建一个包含war而不是默认jar的源代码的最低Maven项目(又名pom.xml文件)。

如果你想坚持只与控制台和不使用由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,而技术“。战争“文件是一样的ZIP压缩文件夹重命名为”.zip“)。

(也请注意,我会真正花时间与maven取得联系,因为在此之后,你知道一个严重的构建工具和将能够在一个标准的过程中创造jarearwar等)。

+0

有趣的,所以你使用“jar cvf my-app.war”会创建我的.war文件,或者如果TomCat只需要一个.war zip文件,那么我所需要做的就是压缩目录的内容。让我尝试一下。 – SomeGuyOnAComputer 2015-03-25 12:08:35

+1

@SomeGuyOnAC计算机以及我还没有测试过的jar工具是诚实的。但是,如果您遵循WAR目录布局并在该结构内部有一个可用的Web应用程序(可能是'/ WEB-INF /'中的单个'index.html'文件),那么您可以将该文件夹压缩并重命名为ZIP一个WAR并将其部署在您的本地Tomcat上 – JBA 2015-03-25 12:39:31

+1

我尝试了zip方法,但不幸的是没有工作。然而,http://stackoverflow.com/questions/16342075/generate-war-file-from-tomcat-webapp-folder正是使用了上面的“jar -cvf my-app.war myfolder /”,并且这样做了! – SomeGuyOnAComputer 2015-04-15 16:08:52

1

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

mvn package 

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

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

一些有效的包装值都罐子战争POM。如果未指定包装值,则将默认为罐子

更多详细信息herehere