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

时间:2010-09-17 12:54:51

标签: ant

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

<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>

我如何将第三个参数分成多行,因此ant-skript更具可读性(更低的线宽)?像这样的东西(\只是一个占位符来展示我需要的东西):

<exec executable="command">
  <arg line="--property PROP1:\\"/>
  <arg line="PROP2:\\"/>
  <arg line="PROP3\\"/>
</exec>

因此,当Ant执行此操作时,它应该导致以下命令:

command --property PROP1:PROP2:PROP3

我怎么能意识到这一点?

2 个答案:

答案 0 :(得分:5)

Ant中不推荐使用

arg line。请改用arg value。从文档中查看此示例。如果你这样做,世界将变得更加幸福和安全。

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

答案 1 :(得分:1)

你可以试试这个:

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

然后在exec中使用它:

<arg pathref="exec.parms" />

您可以在arg中使用值为“--property”的prefix属性来创建以下内容:

--property PROP1:
--property PROP2: