2010-09-17 94 views
4

在我的Ant skript,我是执行程序,传递一些参数,其中之一是一个很长的说法:蚂蚁EXEC任务:如何打破一个长的说法成多行

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

哪有我将第三个参数分成多行,所以蚂蚁更易读(更低的行宽)?像这样的东西(\只是证明我所需要的占位符):

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

所以,当蚂蚁执行该应导致下面的命令:

command --property PROP1:PROP2:PROP3 

我怎么能实现呢?

回答

1

你可以试试这个:

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

,然后用它在EXEC:

<arg pathref="exec.parms" /> 

您可以使用值“--property”前缀属性,ARG创建以下:

--property PROP1: 
--property PROP2: 
+1

嗯,当我这样做了,蚂蚁追加我的主目录的pathref,导致以下参数:/家庭/ mackaz/ARG1:/家庭/ mackaz/arg2的,但我希望像ARG1参数: arg2 – ifischer 2010-11-02 16:12:55

+0

如果行本身太长而不能被“消化”,那么对于我来说,既不是''也不是' 1.9.4):*“[exec] Die Befehlszeile ist zu lang。”(命令行太长)* – 2015-10-30 15:28:13

4

arg line在蚂蚁已被弃用。改为使用arg value。从文档中查看此示例。如果你这样做,世界将是一个更加快乐和安全的地方。

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

这样,每个参数都与前一个空格分隔开来,我不想这样。的可执行文件应该被连接为一个字符串,但我仍然没有发现这样做的可能性 – ifischer 2010-11-02 16:07:12

+0

值甚至会传递一个空的参数给可执行文件,行不会这样做,这可能是也可能不是,例如adb “”外壳不善于善变adb工具。因此Android build.xml使用“$ {adb.device.arg}”这一行。 – 2013-08-25 21:10:50

+1

这是如何回答这个问题的? – fzzfzzfzz 2015-10-16 18:29:31