2011-06-06 95 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中。你是對的 - 那是他們所屬的地方。一定要創建目錄路徑。