Муравьиные неизменяемые свойства к изменчивым - PullRequest
5 голосов
/ 25 января 2012

У меня проблема. Я использую плагин antrun для maven и делаю следующее: у меня есть папка и подпапки (я не знаю, что называется подпапками и их номером), и я делаю архив для этих подпапок с их именем (имя подпапки - "1 ", имя архива -" 1.acp ").

               <tasks>
                  <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${settings.localRepository}/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar" />
                  <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${settings.localRepository}/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar" />
                  <for param="file">
                      <path>
                          <dirset dir="src/main/bootstrap" includes="/*" />
                      </path>
                      <sequential>
                          <basename property="dir" file="@{file}" />
                          <zip destfile="${project.build.outputDirectory}/alfresco/extension/agilent/${dir}.acp" basedir="@{file}" />
                      </sequential>
                  </for>
              </tasks>

Но свойство dir является неизменным !!! И весь архив имеет название «1.acp». Как сделать это свойство изменчивым или сделать это по-другому?

Ответы [ 2 ]

6 голосов
/ 25 января 2012

Вы можете использовать 1,8 Муравья Местное задание

В вашем случае:

<sequential>
  <local name="dir"/>
  <basename property="dir" file="@{file}"/>
  <zip
    destfile="${project.build.outputDirectory}/alfresco/extension/agilent/${dir}.acp" 
    basedir="${dir}"
  />
</sequential>
4 голосов
/ 25 января 2012

Вы можете использовать var task из ant contrib.

Свойство unset, позволяет сбрасывать значения (пример по ссылке выше):

    <property name="x" value="6"/>
    <echo>${x}</echo>   <!-- will print 6 -->
    <var name="x" unset="true"/>
    <property name="x" value="12"/>
    <echo>${x}</echo>   <!-- will print 12 -->

Так что вам придется исправить это на:

 <sequential>
   <var name="dir" unset="true"/>
   <basename property="dir" file="@{file}" />
   <zip destfile="${project.build.outputDirectory}/alfresco/extension/agilent/${dir}.acp" basedir="@{file}" />
 </sequential>
...