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
Ant exec任务:如何将一个长参数分解为多行_Ant - Fatal编程技术网

Ant exec任务:如何将一个长参数分解为多行

Ant exec任务:如何将一个长参数分解为多行,ant,Ant,在我的Ant Skcript中,我正在执行一个程序,传递一些参数,其中一个是很长的参数: <exec executable="${conf.GLASSFISH}/bin/asadmin" failonerror="true" vmlauncher="false"> <arg line="create-auth-realm" /> <arg line="--classname com.sun.enterprise.security.auth.realm.jdb

在我的Ant Skcript中,我正在执行一个程序,传递一些参数,其中一个是很长的参数:

<exec executable="${conf.GLASSFISH}/bin/asadmin" failonerror="true" vmlauncher="false">
  <arg line="create-auth-realm" />
  <arg line="--classname com.sun.enterprise.security.auth.realm.jdbc.JDBCRealm" />
  <arg line="--property jaas-context=${conf.auth.jaas-context}:datasource-jndi=${conf.auth.datasource-jndi}:user-table=${conf.auth.usertable}:user-name-column=${conf.auth.usernamecolumn}:password-column=${conf.auth.passwordcolumn}:group-table=${conf.auth.grouptable}:group-name-column=${conf.auth.groupnamecolumn}:assign-groups=${conf.auth.assigngroups}:digest-algorithm=${conf.auth.digest}" />
  <arg line="jdbcRealm" />
</exec>
我怎样才能意识到这一点?

您可以尝试以下方法:

  <path id="exec.parms" >
    <pathelement  path="PROP1:" />
    <pathelement  path="PROP2:" />
  </path> 

arg行
在Ant中不推荐使用。改用
arg值
。参见文档中的示例。如果你这样做,世界将变得更幸福、更安全

<target name="help">
  <exec executable="cmd">
    <arg value="/c"/>
    <arg value="ant.bat"/>
    <arg value="-p"/>
  </exec>
</target>  


这样,每个参数都用空格与前一个参数分开。我不想那样。可执行文件的所有参数应连接为一个字符串。我仍然没有找到这样做的可能性。value甚至会将一个空参数传递给可执行文件,而line则不会。这可能是可取的,也可能不是可取的。例如,易变的adb工具无法理解adb“”shell。因此,Android build.xml使用“${adb.device.arg}”的行。这是如何回答问题的?很高兴知道这一点,但它没有帮助,似乎与问题非常无关=>应该是注释,而不是不确定
。也许您提到了将命令行参数传递给
,这确实是不赞成的,而赞成使用嵌套
Hmm的
,当我这样做时,Ant将我的主目录附加到pathref,导致以下参数:/home/mackaz/arg1:/home/mackaz/arg2,但我希望像arg1:arg2这样的参数在这里对我有用,如果行本身太长而无法“消化”:-((ant 1.9.4):“[exec]Die Befehlszeile ist zu lang.”(命令行太长)
  <path id="exec.parms" >
    <pathelement  path="PROP1:" />
    <pathelement  path="PROP2:" />
  </path> 
<arg pathref="exec.parms" />
--property PROP1:
--property PROP2:
<target name="help">
  <exec executable="cmd">
    <arg value="/c"/>
    <arg value="ant.bat"/>
    <arg value="-p"/>
  </exec>
</target>