我试图关注此stackoverflow链接:
最初,我开始寻找一种在蚂蚁中做大事的方法,但我找到了一些方法,这些都给我带来了麻烦。
但是我收到以下错误消息: 无法加载脚本引擎管理器(org.apache.bsf.BSFManager或javax.script.ScriptEngineManager)
我试图添加一个bsf jar并且没有成功。 你能举个例子吗??
<bool>
元素的ant-contrib附加属性,这些属性在以下链接中建议:
http://ant-contrib.sourceforge.net/tasks/tasks/more_conditions.html 我没有成功。你能给我举个例子吗??
答案 0 :(得分:2)
以下ANT演示适用于我而无需安装其他库:
<project name="hello" default="demo">
<target name="demo">
<script language="javascript">
var version = parseInt(project.getProperty('version'));
project.setProperty('isGreater', version > 1);
</script>
<echo message="${isGreater}"/>
</target>
</project>
您使用的是什么版本的ANT和Java? 就我而言:
$ ant -version
Apache Ant(TM) version 1.8.2 compiled on December 3 2011
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
答案 1 :(得分:1)
查看您收到的第一条错误消息:
Unable to load a script engine manager (org.apache.bsf.BSFManager or javax.script.ScriptEngineManager)
这告诉您缺少Jar文件。查看<script>
任务:
注意:此任务取决于Apache Ant分发中未包含的外部库。有关详细信息,请参阅Library Dependencies。
Library Dependency链接将带您进入表格。搜索单词 script task 。脚本任务最多需要10个可选的jar。您需要的是bsf.jar。
要使用 Ant Contrib 任务,您需要Ant Contrib Jarfile,并使用<taskdef>
任务链接到任务。这是如何做到的:
antlib/ant-contrib
的目录,并将ant-contrib.jar放在该目录中。在您的build.xml
中,您希望在顶部附近执行以下操作。这可以在任何任务之外完成:
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<fileset dir="${basedir}/antlib/ant-contrib"/>
</classpath>
</taskdef>
现在,您应该可以使用包含ant-contrib task条件的<bool>
。
答案 2 :(得分:0)
使用此:
<scriptdef name="val1_mayorque_val2" language="javascript">
<attribute name="val1" />
<attribute name="val2" />
<attribute name="resultado" />
<![CDATA[
if(attributes.get("val1") > attributes.get("val2"))
project.setProperty(attributes.get("resultado"), "si");
else
project.setProperty(attributes.get("resultado"), "no");
]]>
</scriptdef>
用这个称呼:
<val1_mayorigualque_val2 val1="5" val2="3" resultado="result"/>
val1 =值1 val2 =值2
使用后,您必须测试$ {result}。我有它&#34; si&#34;值,则val1大于val2。