Java Ant:build.xml;XML文档结构必须在同一实体中开始和结束
我有以下目录结构Java Ant:build.xml;XML文档结构必须在同一实体中开始和结束,java,xml,ant,Java,Xml,Ant,我有以下目录结构 +project +--profile +---src +---WebContent +---build 我试图使用Ant编译和复制,但是当我执行下面的build.xml文件时,我得到一个错误:xml文档结构必须在同一个实体中开始和结束,而不是在其他实体中开始和结束。我检查了几个几乎相似的问题,但没有一个有用,唯一一个类似的问题是通过添加任何内容来收集的,比如一条对我不起作用的评论。生成文件中缺少什么 <?x
+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>
=配置文件管理=]]
我认为这就是问题所在:
<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中转义的操作,但我甚至不会对其使用CDATA节:
<doctitle><![CDATA[<h1>=Profile Mgnt =</h1>]]></doctitle>
<bottom>Copyright 2011. All Rights reserved></bottom>
=配置文件管理=]>
版权所有2011。版权所有>
。。。即使是第一个,也只需要打开尖括号:
<doctitle><h1>=Profile Mgnt =</h1></doctitle>
<bottom>Copyright 2011. All Rights reserved></bottom>
h1>=配置文件管理=/h1>
版权所有2011。版权所有>
(您也可以选择将
转换为
,但我相信您不必这样做。)正如您所建议的,构建成功了,但是我在My bad中做了一些更改,我发现我必须指定要运行的每个任务,否则只执行默认任务。