如何使用Java 以编程方式为Apache Tomcat服务器创建可部署的WAR文件?
是否有用于此类任务的库?
我正在为一个特殊用途的小型IDE工作。 IDE是用Java和JavaScript编写的,所以我需要使用那些来创建WAR文件。
答案 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文件具有以下结构:
因此,如果您想手动构建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>