Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何使用Flex Ant任务从scriptdef获取属性_Apache Flex_Ant - Fatal编程技术网

Apache flex 如何使用Flex Ant任务从scriptdef获取属性

Apache flex 如何使用Flex Ant任务从scriptdef获取属性,apache-flex,ant,Apache Flex,Ant,我有一个工作build.xml文件,用于构建swc等各种任务。我要做的一件事是解析类的版本号,并将其附加到swc文件名 我正在使用scriptdef解析版本号,但我无法确定如何从scriptdef调用外部访问结果 <target name="output_version"> <loadfile property="version" srcFile="src/Main.as"/> <script_test str="${version}"/>

我有一个工作build.xml文件,用于构建swc等各种任务。我要做的一件事是解析类的版本号,并将其附加到swc文件名

我正在使用scriptdef解析版本号,但我无法确定如何从scriptdef调用外部访问结果

<target name="output_version">
     <loadfile property="version" srcFile="src/Main.as"/>
     <script_test str="${version}"/>    
    <echo>${str}</echo>
</target>

<scriptdef name="script_test" language="javascript">
                <attribute name="str"/>
                <attribute name="result"/>
                <element name="fileset" type="fileset"/>
                <element name="path" type="path"/>
                <![CDATA[

                  var txt = attributes.get("str");
                  var patt = /VERSION:String = "(.+)?"/;
                  var result = patt.exec(txt);
                  self.log("Hello from script: " + result[1]);

                 self.project.setProperty( attributes.get("str"), result[1]);
                ]]>
</scriptdef>

${str}

看起来您正在尝试设置
str
属性(在您回显时)。 一个选项是,在javascript中,直接分配给它:

self.project.setProperty( "str", result[1] );
在您发布的代码中

attributes.get("str")
将是文件
src/Main.as
的内容,作为属性名并不理想

如果要通过
result
属性将用于保存查找到的信息的属性的名称传递给scriptdef,请在脚本中使用以下命令:

self.project.setProperty( attributes.get("result"), result[1] );
然后在呼叫者中,例如:

<script_test str="${version}" result="res" />
<echo>${res}</echo>

${res}
请注意,Ant属性是不可变的-它们不是变量-一旦设置,值就不能更改