gpt4 book ai didi

java - macrodef 上的 Ant 'unless'

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:52:34 26 4
gpt4 key购买 nike

我想写一个 macrodef,它依赖于另一个 macrodef 中设置的属性,例如这个,它不起作用......(macrodef 不支持 depends 和 unless 属性)无论如何要这样做?

<project name="mac">

<property name="antlr.version" value="3.2"/>

<macrodef name="check">
<attribute name="dest"/>
<attribute name="name"/>
<attribute name="version"/>
<sequential>
<available file="@{dest}/@{name}-@{version}.jar" property="@{name}-exists"/>
</sequential>
</macrodef>

<macrodef name="pull" depends="check" unless="@{name}-exists">
<attribute name="url"/>
<attribute name="dest"/>
<attribute name="name"/>
<attribute name="version"/>

<sequential>
<get src="@{url}" dest="@{dest}/@{name}-@{version}" verbose="true" ignoreerrors="true" unless="@{name}-exists"/>
</sequential>
</macrodef>

<target name="pullall">
<pull url="http://repo1.maven.org/maven2/org/antlr/antlr/${antlr.version}/antlr-${antlr.version}.jar" dest="." name="antlr" version="${antlr.version}"/>
</target>

最佳答案

这似乎可行:

    <project name="mac">

<property name="antlr.version" value="3.2"/>
<property name="stringtemplate.version" value="4.0.2"/>

<target name="check">
<available file="${dest}/${name}-${version}.jar" property="jar-exists"/>
</target>

<target name="_pull" depends="check" unless="jar-exists">
<get src="${url}" dest="${dest}/${name}-${version}.jar" verbose="true" ignoreerrors="true"/>
</target>

<macrodef name="pull">
<attribute name="url"/>
<attribute name="dest"/>
<attribute name="name"/>
<attribute name="version"/>

<sequential>
<antcall target="_pull">
<param name="url" value="@{url}"/>
<param name="dest" value="@{dest}"/>
<param name="name" value="@{name}"/>
<param name="version" value="@{version}"/>
</antcall>
</sequential>
</macrodef>

<target name="pullall">
<pull url="http://repo1.maven.org/maven2/org/antlr/antlr/${antlr.version}/antlr-${antlr.version}.jar" dest="." name="antlr" version="${antlr.version}"/>
<pull url="http://repo1.maven.org/maven2/org/antlr/stringtemplate/${stringtemplate.version}/stringtemplate-${stringtemplate.version}.jar" dest="." name="stringtemplate" version="${stringtemplate.version}"/>
</target>

</project>

关于java - macrodef 上的 Ant 'unless',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079565/

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