gpt4 book ai didi

java - Ant build.xml 文件无法使用文件集元素中的属性

转载 作者:行者123 更新时间:2023-11-30 09:19:00 25 4
gpt4 key购买 nike

我正在使用 ant build.xml 构建我的简单 war 文件。

<?xml version="1.0" ?> 
<project name="cellar" default="war">

<target name="init">
<property file="${user.home}/build.properties"/>
<property name="app.name" value="${ant.project.name}"/>
<property name="src.dir" location="src"/>
<property name="lib.dir" location="lib"/>
<property name="build.dir" location="build"/>
<property name="dist.dir" location="dist"/>
<property name="classes.dir" location="${build.dir}/classes"/>

<mkdir dir="${build.dir}"/>
<mkdir dir="${dist.dir}" />
</target>

<path id="classpath">
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>

<target name="compile" depends="init" >
<javac destdir="${classes.dir}" debug="true" srcdir="${src.dir}">
<classpath refid="classpath"/>
</javac>
</target>

<target name="war" depends="compile" >
<war destfile="${dist.dir}/${app.name}.war" webxml="${src.dir}/main/webapp/WEB-INF/web.xml">
<fileset dir="${src.dir}/main/webapp/"/>
<lib dir="${lib.dir}"/>
<classes dir="${classes.dir}"/>
</war>
</target>

<target name="clean">
<delete dir="${dist.dir}" />
<delete dir="${build.dir}" />
</target>

</project>

上面显示的 ant build.xml 工作得很好。但是,在路径标记中,如果我将 dir="lib"替换为 dir="${lib.dir}"(在文件集标记内),那么构建将失败,并且出现如下所示的错误

构建失败c:\Java\code\Cellar\build.xml:22: c:\Java\code\Cellar\${lib.dir} 不存在。

有人知道为什么会这样吗?

最佳答案

类路径在加载构建文件时定义,而属性仅在执行 init 目标时定义。

将属性定义移到 init 目标之外,或者将文件集定义移到 init 执行后执行的目标中。

关于java - Ant build.xml 文件无法使用文件集元素中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18161028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com