我正在研究一个Ant脚本来帮助Wordpress部署(我知道......)。这里的想法是:
vendor
目录。public_html/wp
目录。public_html/content/plugins
删除除一个PHP文件以外的所有内容:public_html/content/plugins/w3tc-wp-loader.php
。这是我尝试过的(沿着很多变化):
<delete failonerror="false" quiet="false" includeEmptyDirs="true">
<fileset dir="vendor" />
<fileset dir="public_html/wp" />
<fileset dir="public_html/content/plugins">
<exclude name="w3tc-wp-loader.php" />
</fileset>
</delete>
这种方式有效:
vendor
目录的内容,但子目录中存在的几个.gitignore
文件除外,因此这些文件及其父目录仍然存在(即vendor/composer/installers/.gitignore
)。public_html/wp
已按预期删除。public_html/content/plugins
包含一堆子目录,每个子目录都是空的(除了一个有.gitignore
文件)。 Ant脚本中记录的排除文件将按预期保留。任何想法为什么a)空的dirs没有被删除,b).gitignore
文件似乎也保持不变(以及他们的父目录)?我做错了什么?
答案 0 :(得分:4)
这样:
<delete failonerror="false" quiet="false" includeemptydirs="true">
<fileset dir="${root}" defaultexcludes="false">
<include name="vendor/**" />
<include name="public_html/wp/**" />
<include name="public_html/content/plugins/**" />
<exclude name="public_html/content/plugins/w3tc-wp-loader.php" />
</fileset>
</delete>
其中${root}
是vendor
和public_html
的父目录。
defaultexcludes="false"
会确保您的.gitignore
也会被删除。
答案 1 :(得分:3)
默认排除您的.gitignore文件http://ant.apache.org/manual/dirtasks.html#defaultexcludes。要删除它们,请将defaultexcludes="false"
添加到fileset