2011-06-06 91 views
2

我在Eclipse中有一个web应用程序正常工作。我已经建立了使用下面的Ant脚本战争文件,它的工作,直到程序试图访问休眠:蚂蚁构建的WAR文件中的休眠配置文件

<?xml version="1.0" encoding="UTF-8"?> 
<!-- !DOCTYPE removes the warning: 
No grammar constraints (DTD or XML schema) detected for the document. 
--> 
<!DOCTYPE project> 
<project name="Audiclave" default="Deploy" basedir="."> 
    <property name="src.dir" location="src" /> 
    <property name="build.dir" location="build" /> 
    <property name="dist.dir" location="dist" /> 
    <property name="build.classes" location="build/classes" /> 
    <property name="docs.dir" location="docs" /> 
    <property name="web.dir" location="WebContent" /> 
    <!-- Deletes the existing build, docs and dist directory--> 
    <target name="clean"> 
     <delete dir="${build.classes}" /> 
     <delete dir="${build.dir}" /> 
     <delete dir="${docs.dir}" /> 
     <delete dir="${dist.dir}" /> 
    </target> 

    <!-- Creates the build, docs and dist directory--> 
    <target name="makedir"> 
     <mkdir dir="${build.classes}" /> 
     <mkdir dir="${build.dir}" /> 
     <mkdir dir="${docs.dir}" /> 
     <mkdir dir="${dist.dir}" /> 
    </target> 
    <path id="compile.classpath"> 
     <fileset dir="${web.dir}/WEB-INF/lib"> 
     <include name="*.jar" /> 
     </fileset> 
    </path> 
    <target name="compile" depends="clean,makedir"> 
     <javac srcdir="${src.dir}" debug="true" destdir="${build.classes}"> 
     <classpath refid="compile.classpath" /> 
     </javac> 
    </target> 
    <!-- Creates Javadoc --> 
    <target name="docs" depends="compile"> 
     <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}"> 
     <!-- Define which files/directory should get included, we include all --> 
     <fileset dir="${src.dir}"> 
      <include name="**" /> 
     </fileset> 
     </javadoc> 
    </target> 
    <target name="Deploy"> 
     <war destfile="${build.dir}/audiClave.war" webxml="${web.dir}/WEB-INF/web.xml"> 
     <!-- Include the compiled classes from the compile target --> 
     <classes dir="${build.classes}" /> 

     <!-- Include any configuration files (hibernate) --> 
     <fileset dir="${src.dir}" includes="**/*.xml" /> 

     <!-- Include any web content --> 
     <fileset dir="${web.dir}" /> 
     <lib dir="${web.dir}/WEB-INF/lib" /> 
     </war> 
    </target> 
</project> 

我遇到的问题是Hibernate的配置文件的位置。在我的应用程序,他们是:

audiClave\src 

但在部署应用程序的XML文件是:

audiClave 

,而我认为他们需要在:

audiClave\WEB-INF\classes 

怎么办我发表声明:

<fileset dir="${src.dir}" includes="**/*.xml" /> 

将文件发送到WEB-INF \ classes目录(如果这是他们需要的)。

编辑 改剧本,包括以下内容,它工作正常:

<target name="compile" depends="clean,makedir"> 
    <javac srcdir="${src.dir}" debug="true" destdir="${build.classes}"> 
     <classpath refid="compile.classpath" /> 
    </javac> 
    <copy todir="${build.classes}"> 
     <fileset dir="${src.dir}" includes="**/*.xml,**/*.properties"/> 
    </copy> 
</target> 

回答

3

向Ant来<copy>文件到/ WEB-INF/classes中。你是对的 - 那是他们所属的地方。一定要创建目录路径。