簡體   English   中英

Ant不可變屬性為可變

[英]Ant immutable properties to mutable

我有個問題。 我使用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>

但屬性目錄是不可改變的! 並且所有存檔都有名稱“1.acp”。 如何使這個屬性變得可變或以另一種方式做到這一點?

您可以使用1.8 Ant的本地任務

在你的情況下:

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

您可以使用ant contrib中的var任務

該屬性未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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM