gpt4 book ai didi

java - Ant:路径中的可变部分作为宏的属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:03 25 4
gpt4 key购买 nike

我有以下问题,如何在 path 中设置变量“SERVERNAME”元素,作为宏的参数(myCompile)?

<path id="myClasspath"  >
<fileset>
<include name="{??SERVERNAME??}/my.jar" />
</fileset>
</path>

<macrodef name="myCompile">
<attribute name="classPath" />
<attribute name="server" />
<sequential>
<javac destdir="dest" classpathref="@{classPath}" srcdir="./src" />
</sequential>
</macrodef>

<target name="Build_server1">
<!-- as {??Servername??} in path should be used "server1" -->
<myCompile classPath="myClasspath" server="server1"/>
</target>

<target name="Build_server2">
<!-- as {??Servername??} in path should be used "server2"-->
<myCompile classPath="myClasspath" server="server2"/>
</target>

编辑:如果<path>移动到宏然后可以使用宏的属性。 但是不可能在另一个地方重用定义的路径。(参见编辑 2)

<macrodef name="myCompile">
<attribute name="classPath" />
<attribute name="server" />
<sequential>
<path id="myClasspath" >
<fileset>
<include name="@{server}/my.jar" />
</fileset>
</path>
<javac destdir="dest" classpathref="@{classPath}" srcdir="./src" />
</sequential>
</macrodef>

EDIT 2 可以重复使用 path在宏中定义之后。

最佳答案

我不是 ANT 专家,但我认为以下内容会给你一个很好的开始:

<macrodef name="myCompile">
<attribute name="classPath" />
<sequential>
<javac destdir="dest" classpathref="@{classPath}" srcdir="./src" />
</sequential>
</macrodef>

<target name="Build_server1">
<property name="server" value="server1"/>
<antcall target="setMyClassPath"/>
</target>

<target name="Build_server2">
<property name="server" value="server2"/>
<antcall target="setMyClassPath"/>
</target>

<target name="setMyClasspath">
<path id="myClasspath">
<fileset>
<include name="${server}/my.jar" />
</fileset>
</path>
<myCompile classPath="myClasspath"/> << Add here and removed from above
</target>

关于java - Ant:路径中的可变部分作为宏的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30866302/

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