使用Java创建WAR文件

时间:2013-06-18 07:57:23

标签: java tomcat war

如何使用Java 以编程方式为Apache Tomcat服务器创建可部署的WAR文件?

是否有用于此类任务的库?

我正在为一个特殊用途的小型IDE工作。 IDE是用Java和JavaScript编写的,所以我需要使用那些来创建WAR文件。

5 个答案:

答案 0 :(得分:4)

如果要从代码构建它,请尝试从命令行执行

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("jar cvf /path/to/your/project/your-file.war");

当然,同样的事情可以使用ANT或Maven(只要这些工具安装在最终平台上)。

编辑:添加改进建议

答案 1 :(得分:1)

我不知道库,但WAR文件只是一个不同结尾的ZIP文件。

只需创建内部文件夹结构和文件(谷歌的Java代码)和打包为zip(java也有我认为的方法,再次google)并将文件从“myfile.zip”重命名为“myfile”。战“

答案 2 :(得分:1)

我不知道如何使用你拥有的IDE来做到这一点。但WAR文件具有以下结构:

  • 网络资源转到根
  • 项目类(包括其包文件夹)转到WEB-INF / classes文件夹
  • 项目依赖项jar转到WEB-INF / lib

因此,如果您想手动构建WAR,则需要在扩展名为.war的zip文件中创建该文件结构,并且需要将其复制到服务器的正确位置以进行部署。大多数服务器还允许“爆炸部署”,这意味着您不需要实际的war文件,您可以将这些内容部署到与战争同名的目录(IE。'myapp.war')。

答案 3 :(得分:0)

您可以通过多种方式执行此操作,如果您使用maven,则需要使用<packaging>war</packaging>

作为快速示例

你可以像上面提到的那样输出战争,但它并不完全是“程序化的”。

如果你正在使用Ant - 你可以找到这个here

的教程

答案 4 :(得分:-2)

<?xml version="1.0" ?> 

<path id="compile.classpath">
    <fileset dir="WebContent/WEB-INF/lib">
        <include name="*.jar"/>
    </fileset>
</path>

<target name="init">
    <mkdir dir="build/classes"/>
    <mkdir dir="dist" />
</target>

<target name="compile" depends="init" >
    <javac destdir="build/classes" debug="true" srcdir="src">
        <classpath refid="compile.classpath"/>
    </javac>
</target>

<target name="war" depends="compile">
    <war destfile="/APP/jboss-5.1.0.GA/server/all/deploy/DispatchActionEx.war" webxml="WebContent/WEB-INF/web.xml">         
        <fileset dir="WebContent"/>
        <lib dir="WebContent/WEB-INF/lib"/>         
        <classes dir="build/classes"/>
    </war>
</target>

<target name="clean">       
</target>

  1. 只需编写一个build.xml文件(我举一个例子),
  2. 更改“项目名称”和“war destfile”,它将是“... / apache-tomcat / webapps / projectname.war”
  3. 将其放入您的项目文件夹
  4. 在日食中打开它。
  5. 右键单击它&gt;&gt;运行为&gt;&gt; ant build
  6. 检查是否在apache-tomcat
  7. 的webapps文件夹中创建了war文件