如何在Ant解压缩的文件中附加一行?

时间:2013-01-24 16:00:23

标签: java ant log4j

我有一个默认的log4j属性文件,我想要附加一个特定于应用程序的配置。该文件包含在.zip文件中(包含其他文件)。我使用Ant解压缩zip的内容(包括log4j属性)。我想在解压缩时附加行。这可能吗?

<unzip dest="some.dest">
    <fileset refid="some.fileset" />
    <!-- Append a line to 'log4j.properties` file -->
</unzip>

也许解决方案只是在我解压后回音。

2 个答案:

答案 0 :(得分:1)

您可以将Ant“echo”任务与“append”标志一起使用:

<echo file="log4j.properties" append="true">${line.separator}</echo>

此处的回声任务文档供进一步参考:

http://ant.apache.org/manual/Tasks/echo.html

答案 1 :(得分:0)

无需解压缩整个zip文件,请使用

如果log4j.properties位于zip的根目录:

<project>
  <!-- unzip log4j.properties only -->
  <unzip src="foo.zip" dest=".">
    <patternset>
      <include name="log4j.properties" />
    </patternset>
  </unzip>
  <!-- put new key in or overwrite if already existing -->
  <propertyfile file="log4j.properties">
    <entry key="log4j.logger.com.foobar.xyz" value="ERROR" />
  </propertyfile>
  <!-- update zip with modified log4j.properties -->
  <zip destfile="foo.zip" update="true">
    <fileset dir="." includes="log4j.properties" />
  </zip>
</project>

否则如果log4j.properties位于zip的任何子文件夹中:

<project>
  <!-- unzip log4j.properties only -->
  <unzip src="foo.zip" dest=".">
    <patternset>
      <include name="**/log4j.properties" />
    </patternset>
  </unzip>
  <fileset dir="." includes="**/log4j.properties" id="foo"/>
  <!-- put new key in or overwrite if already existing -->
  <propertyfile file="${toString:foo}">
    <entry key="log4j.logger.com.foobar.xyz" value="ERROR" />
  </propertyfile>
  <!-- update zip with modified log4j.properties -->
  <zip destfile="foo.zip" update="true">
    <fileset dir="." includes="${toString:foo}" />
  </zip>
</project>