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

Ing*_*her 4 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>
Run Code Online (Sandbox Code Playgroud)

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

<exec executable="command">
  <arg line="--property PROP1:\\"/>
  <arg line="PROP2:\\"/>
  <arg line="PROP3\\"/>
</exec>
Run Code Online (Sandbox Code Playgroud)

所以当Ant执行它时,它应该导致以下命令:

command --property PROP1:PROP2:PROP3
Run Code Online (Sandbox Code Playgroud)

我怎么能意识到这一点?

Jul*_*son 5

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

<target name="help">
  <exec executable="cmd">
    <arg value="/c"/>
    <arg value="ant.bat"/>
    <arg value="-p"/>
  </exec>
</target>  
Run Code Online (Sandbox Code Playgroud)

  • 这样,每个参数都与前一个参数分开,并带有空格.我不希望这样.可执行文件的所有参数应连接为一个字符串.我仍然没有找到这样做的可能性. (2认同)

Edu*_*uro 1

你可以试试这个:

  <path id="exec.parms" >
    <pathelement  path="PROP1:" />
    <pathelement  path="PROP2:" />
  </path> 
Run Code Online (Sandbox Code Playgroud)

然后在 exec 中使用它:

<arg pathref="exec.parms" />
Run Code Online (Sandbox Code Playgroud)

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

--property PROP1:
--property PROP2:
Run Code Online (Sandbox Code Playgroud)