Задача Ant exec: как разбить один длинный аргумент на несколько строк - PullRequest
4 голосов
/ 17 сентября 2010

В моем скрипте Ant я выполняю программу, передавая несколько аргументов, один из которых является очень длинным аргументом:

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

Как я могу разбить 3-й аргумент на несколько строк, чтобы ant-skript был более читабельным (меньшая ширина строки)? Примерно так (\ это просто заполнитель, чтобы продемонстрировать, что мне нужно):

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

Таким образом, когда Ant выполняет это, это должно привести к следующей команде:

command --property PROP1:PROP2:PROP3

Как я могу это понять?

Ответы [ 2 ]

5 голосов
/ 17 сентября 2010

arg line устарела в Ant.Вместо этого используйте arg value.Смотрите этот пример из документов.Если вы сделаете это, мир станет счастливее и безопаснее.

<target name="help">
  <exec executable="cmd">
    <arg value="/c"/>
    <arg value="ant.bat"/>
    <arg value="-p"/>
  </exec>
</target>  
1 голос
/ 17 сентября 2010

Вы можете попробовать это:

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

А затем используйте его в exec:

<arg pathref="exec.parms" />

Вы можете использовать атрибут префикса со значением «--property» в arg для создания следующего:

--property PROP1:
--property PROP2:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...