0

我的属性gwt.sdk在其他任何地方都可以很好地扩展,但不在路径/路径元素内:

<target name="setup.gwtenv">
  <property environment="env"/>
  <condition property="gwt.sdk" value="${env.GWT_SDK}"> 
    <isset property="env.GWT_SDK" />
  </condition>
  <property name="gwt.sdk" value="/usr/local/gwt" /> <!-- Default value. -->
</target>

<path id="project.class.path">
  <pathelement location="${gwt.sdk}/gwt-user.jar"/>
</path>

<target name="libs" depends="setup.gwtenv" description="Copy libs to WEB-INF/lib">
</target>

<target name="javac" depends="libs" description="Compile java source">
  <javac srcdir="src" includes="**" encoding="utf-8"
      destdir="war/WEB-INF/classes"
      source="1.5" target="1.5" nowarn="true"
      debug="true" debuglevel="lines,vars,source">
    <classpath refid="project.class.path"/>
  </javac>
</target>

例如,在上面放置一个 ${gwt.sdk} 的回声是可行的,但不是在“project.class.path”中。这是一个错误,还是我必须做一些我不是的事情?

编辑:我尝试将属性从目标 setup.gwtenv 移到“全局空间”,这有助于规避问题。

4

2 回答 2

0

扩展不起作用还是只是回声?这是不同的,因为您不能将 echo 任务放在目标之外。尝试<echo message="${gwt.sdk}"/>在 javac 目标中作为第一个任务。

全局之前<path>没有运行过setup.gwtenv目标。也许你可以在<path>里面移动setup.gwtenv

最后:路径创建时是否存在该位置?否则路径元素将被忽略。

于 2010-04-26T12:03:38.373 回答
0

由于没有其他人回答,我认为解决方案是${gwt.sdk}移出setup.gwtenv并进入“全球空间”。

于 2010-05-21T07:47:03.240 回答