Ant 路径/路径元素未正确扩展属性

发布于 2024-08-30 06:01:56 字数 1118 浏览 5 评论 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} 的 echo 放在上面可以,但不能在“project.class”内。小路”。这是一个错误,还是我必须做一些我不是的事情?

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

My property gwt.sdk expands just fine everywhere else, but not inside a path/pathelement:

<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>

For instance, placing an echo of ${gwt.sdk} just above works, but not inside "project.class.path". Is it a bug, or do I have to do something that I'm not?

Edit: I tried moving the property out from target setup.gwtenv into "global space", that helped circumvent the problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜司空 2024-09-06 06:01:56

扩展不起作用还是只有回声?这是不同的,因为您不能将 echo 任务放置在目标之外。尝试在 javac 目标中使用 作为第一个任务。

全局 之前未运行过 setup.gwtenv 目标。也许您可以将 移动到 setup.gwtenv 中?

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

Does the expansion not work or just the echo? This is different, because you cannot place the echo task outside a target. Try <echo message="${gwt.sdk}"/> inside the javac target as first task.

The global <path> has not run the setup.gwtenv target before. Maybe you can move the <path> inside the setup.gwtenv?

And last: Does the location exist on path creation? Otherwise the pathelement will be ignored.

枕梦 2024-09-06 06:01:56

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

Since no-one else replied I take it the solution is to move ${gwt.sdk} out of setup.gwtenv and into "global space".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文