使用Ant构建器
构建时,我在以下代码的第一行有错误<war warfile="${wartemp.dir}/${name}.war" basedir="${wartemp.dir}" webxml="${wartemp.dir}/WEB-INF/web.xml">
<include name="*"/>
<include name="scripts/**"/>
<include name="styles/**"/>
<include name="images/**"/>
<include name="WEB-INF/*.*"/>
<include name="WEB-INF/lib/**"/>
<include name="WEB-INF/views/**"/>
<include name="WEB-INF/classes/**"/>
<include name="WEB-INF/jsp/**"/>
<include name="WEB-INF/resources/**"/>
<include name="WEB-INF/spring/**"/>
<include name="WEB-INF/messages/**"/>
<include name="WEB-INF/layouts/**"/>
<exclude name="WEB-INF/web.xml"/>
<exclude name="**/.*"/>
</war>
错误消息是:
“... /WEB-INF/build.xml:67:一个zip文件不能包含自己” 第67行是上面发布的片段的第一行。
我是Spring框架的初学者。我正在使用带有springource tooluite的Spring版本3。如何解决这个问题? 感谢。
答案 0 :(得分:5)
您的basedir与您发送输出的war文件的目录相同。这本身不是问题,问题是你包括*
作为输入,包括输出文件。
要解决此问题,您可以从包含的文件中排除输出文件,例如:
<exclude name="${name}.war"/>
或者您可以将war文件写入不同于您的目录结构,例如:
<mkdir dir="${war.output.dir}" />
<war warfile="${war.output.dir}/${name}.war" ...>
答案 1 :(得分:0)
我想我发现任何“zip-like”Ant任务(zip,jar ......)中的“一个zip文件不能包含自身”问题的另一个原因:
请记住,设置“basedir”属性已经是要包含的第一组文件!您需要明确排除在此级别创建的zip文件(使用“excludes”属性。或者,从Ant 1.7开始,使用嵌套的“排除”元素)。
“fileset”嵌套元素是zip任务的另一个“set”。您应该确保将zip“本身”从集合中排除,并使用另一个显式排除。等等...