[英]ANT/JAVA: Config to include library files in the war file
ANT的新手,正在使用它来构建。 我有一个Java-Jersey休息项目,并且在WEB-INF / lib下包含了Jersey库。 我有一个build.xml用于构建/编译项目。
<?xml version="1.0"?>
<project name="Ant-Test" default="Main" basedir=".">
<!-- Sets variables which can later be used. -->
<!-- The value of a property is accessed via ${} -->
<property name="src.dir" location="src" />
<property name="lib.dir" location="" />
<property name="build.dir" location="bin" />
<!--
Create a classpath container which can be later used in the ant task
-->
<path id="build.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- Deletes the existing build directory-->
<target name="clean">
<delete dir="${build.dir}" />
</target>
<!-- Creates the build directory-->
<target name="makedir">
<mkdir dir="${build.dir}" />
</target>
<!-- Compiles the java code -->
<target name="compile" depends="clean, makedir">
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" />
<jar destfile="${build.dir}/CrunchifyRESTJerseyExample.jar" basedir="${build.dir}"/>
<war destfile="${build.dir}/CrunchifyRESTJerseyExample.war" webxml="WebContent/WEB-INF/web.xml">
<classes dir="${build.dir}"/>
</war>
</target>
<target name="Main" depends="compile">
<description>Main target</description>
</target>
</project>
这样,我就不会在war文件中获取库文件。 在战争中我应该添加些什么?
如果您查看Ant war
任务 ,则可以指定<lib>
元素,并将其放置在WEB-INF/lib
文件夹下。 所以试试这个:
<war destfile="${build.dir}/CrunchifyRESTJerseyExample.war" webxml="WebContent/WEB-INF/web.xml">
<classes dir="${build.dir}"/>
<lib dir="${lib.dir}">
<exclude name="jdbc1.jar"/> <!-- Exclude here jars you don't want -->
</lib>
</war>
注意:您应该在脚本的开头设置属性,以使上述任务正常运行:
<property name="lib.dir" location="lib" /> <!-- Or whatever you call your project folder with the jars-->
尝试将文件集元素作为战争元素添加
<fileset dir="${home.dir}/WEB-INF/libDirectory/*">
<include name="**/*"/>
</fileset>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.