2012-01-25 19 views
5

ho un problema. Sto usando un plugin antrun per Maven e faccio il prossimo: ho cartella e sottocartelle (non so cosa si chiamino sottocartelle e il loro numero) e sto archiviando per queste sottocartelle con il loro nome (nome sottocartella - "1 ", nome dell'archivio -" 1.acp ").Proprietà modificabili antimutabili a

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

Ma la proprietà dir è immutabile !!! E tutti gli archivi hanno il nome "1.acp". Come rendere questa proprietà mutabile o farlo in un altro modo?

risposta

6

È possibile utilizzare un 1.8 Ant di Local task

Nel tuo caso:

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

È possibile utilizzare il var task di ant contrib.

La proprietà unset, permette di ripristinare i valori (ad esempio dall'alto link):

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

in modo da avere per risolvere il problema a:

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

Grazie !!! È davvero funzionante !!! – VladislavLysov

Problemi correlati