2013-08-03 53 views
3

我有以下目錄結構Ant:build.xml; XML文檔結構必須啓動並在同一實體內結束

+project 
    +--profile 
     +---src 
     +---WebContent 
     +---build 

我試圖編譯和複製使用Ant,但是當我執行以下的build.xml文件我得到此錯誤XML文檔結構必須在同一實體內開始和結束,而不是其他任何內容。我查了幾個幾乎類似的問題,但沒有一個幫助,類似這個問題的唯一問題就是通過添加任何內容,如評論中的任何內容來收集這些內容,這些內容對我來說不起作用。我在構建文件中缺少什麼?

<?xml version="1.0"?> 
<project name="profile" basedir="." default="Task-of-build"> 
<property name="src.dir" value="src"/> 
<property name="webcontent.dir" value="WebContent"/> 
<property name="javadoc" value="doc"/> 
<property name="name" value="profile"/> 
<property name="build.dir" value="${webcontent.dir}/WEB-INF/classes"/> 
<property name="backup.dir" value="C:/project/backup"/> 

<path id="classpathvalue"> 
    <fileset dir="${webcontent.dir}/WEB-INF/lib"> 
     <include name="*.jar"/> 
    <!-- this is a comment --> 
    </fileset> 
    <pathelement path="${build.dir}"/> 
</path> 

<target name="javadoc"> 
    <javadoc packagenames="com.mucyo.prep.profile.*" sourcepath="${src.dir}" 
     destdir = "doc" version="true" windowtitle="Profile Mngt"> 
     <doctitle><![CDATA[<h1>=Profile Mgnt =</h1>]]</doctitle> 
     <bottom><![CDATA[Copyright 2011. All Rights reserved></bottom> 
     <group title="Beans packages" packages="com.mucyo.prep.profile.bean.*"/> 
     <group title="Service packages" pachages="com.mucyo.prep.profile.services.*"/> 
     <group title="servlets packages" packages="com.mucyo.profile.servlets.*"/> 
    </javadoc> 
</target> 
<target name="Task-of-build"> 
    <echo message="This a build example"/> 
</target> 
<target name="build" description="compiling java files"> 
    <mkdir dir="${build.dir}"/> 
    <javac destdir="${build.dir}" source="1.6" target="1.6" debug="true" 
     deprecation="false" optimize="false" failonerror="true"> 
      <src path="${src.dir}"/> 
      <classpath refid="classpathvalue"/> 
    </javac> 
</target> 
<target name="create-war" depends="build"> 
    <war destfile="${name}.war" webxml="${webcontent.dir}/WEB-INF/web.xml"> 
     <fileset dir="."> 
      <include name="**/*.*"/> 
     </fileset> 
    </war> 
</target> 
<target name="backup" depends="build"> 
    <mkdir dir="${backup.dir}"/> 
    <copy todir="${backup.dir}" preservelastmodified="true"> 
     <fileset dir="."> 
      <include dir="${src.dir}:${build.dir}"/> 
     </fileset> 
    </copy> 
</target> 
<target name="clean" depends="build"> 
    <delete> 
     <fileset dir="${build.dir}"> 
      <include name="**/*.class"/> 
     </fileset> 
    </delete> 
</target> 
</project> 

回答

4

我認爲這就是問題所在:

<doctitle><![CDATA[<h1>=Profile Mgnt =</h1>]]</doctitle> 
<bottom><![CDATA[Copyright 2011. All Rights reserved></bottom> 

無論你的CDATA部分都正常終止,所以您的文件,根本就不是有效的XML。我想你應該有:

<doctitle><![CDATA[<h1>=Profile Mgnt =</h1>]]></doctitle> 
<bottom><![CDATA[Copyright 2011. All Rights reserved>]]></bottom> 

......雖然這些字符串的第二做任何事情這需要XML轉義,我woudln't甚至用它CDATA節:

<doctitle><![CDATA[<h1>=Profile Mgnt =</h1>]]></doctitle> 
<bottom>Copyright 2011. All Rights reserved></bottom> 

......乃至第一個只需要打開尖括號轉義:

<doctitle>&lt;h1>=Profile Mgnt =&lt;/h1></doctitle> 
<bottom>Copyright 2011. All Rights reserved></bottom> 

(你可能會選擇轉換>&gt;爲好,但我不相信你有到。)

+0

作爲歐提出的構建是成功的,但是我做一對情侶在變化的名的屬性,而不是路徑。即便儘管構建成功有沒有變化我除了回聲消息之外的其他目錄沒有按照我的預期完成,你是否有任何想法可能是導致失敗的原因。無論如何,第一個問題是回答。 :) – LeandreM

+0

我的壞我想通了,我不得不指定我想要運行的每個任務,否則只有默認執行。 – LeandreM

相關問題