当前位置: 首页 > 知识库问答 >
问题:

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

莫乐
2023-03-14

我正在使用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>

生成失败C:\java\code\cellar\BUILD.xml:22:C:\java\code\cellar\${lib.dir}不存在。

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

共有1个答案

潘雅珺
2023-03-14

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

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

 类似资料:
  • 我正在使用下面的一段代码来获取某个特定定位器的文本。 这将返回字符串值,但只有在IE浏览器中,它才在其他浏览器(即Firefox和chrome)中失败并工作。 我面临这个问题: 组织。openqa。硒。WebDriverException:无法获取元素文本(警告:服务器未提供任何堆栈跟踪信息) 请帮我解决这个问题,IE浏览器中的这个异常也非常不一致,有时它通过了,有时失败了相同的代码。

  • 问题内容: 我为该标题表示歉意。我找不到更好的方法来解释这种情况。 我使用URL http://www.exampledepot.com/egs/java.util/Props.html中所述的Property类加载属性文件。 我的问题是我可以在该属性文件中使用属性吗? 例: test.properties 其他语法有可能吗? 谢谢 问题答案: 以前从未见过。您当然 可以 制作自己的预处理器。只要

  • 问题内容: 我正在使用Java解析Xml,我想在属性值的帮助下解析元素。 例如 在这种情况下,我想使用att值解析tag1数据。我是java和xml的新手。请引导我。 问题答案: 有多种方法可以做到这一点。您可以使用xPath(示例),DOM Document或SAX Parser(示例)来检索属性值和标记元素。 这是您要求的解决方法。我从不建议使用“ hack”类型,而是使用SAX(请参见示例链

  • 问题内容: 你怎么做相当于 document.querySelectorAll('[data-foo]') 其中querySelectorAll是不可用? 我需要至少在IE7中有效的本机解决方案。我不在乎IE6。 问题答案: 您可以编写一个运行getElementsByTagName(’*’)的函数,并仅返回具有“ data-foo”属性的那些元素: 然后,

  • //div/SPAN[包含(text(),“默认值”)]/祖先::div/SPAN[包含(text(),“选择日期”)]/follows-sibling::div//输入 Xpath 2返回3个元素,即图像中的下拉项。 //div[@class='_selectcontainer_psmgei']/div//输入 截图:视窗截图 HTML屏幕截图:HTML代码

  • 对.css文件的访问是通过SceneBuilder中的路径设置的。Scenebuilder将路径直接粘贴到.fxml文件中。例如: .css文件的内容: 有趣的是,我一打开scenebuilder中的.fxml文件,所有的东西都正确显示了。但是当我在Ubuntu上运行Netbeans的GUI时,按钮看起来就不一样了,或者没有显示出来。 我尝试了不同的本地Java版本:-java-8-openjdk