其實官方網頁寫得很清楚了,貼一下原文
The short version: Use import if you intend to override a target, otherwise use include.意思就是說如果被導入的target需要被 override的話就用import,不然用include即可。
When using import the imported targets are available by up to two names. Their "normal" name without any prefix and potentially with a prefixed name (the value of the as attribute or the imported project's name attribute, if any).
When using include the included targets are only available in the prefixed form.
When using import, the imported target's depends attribute remains unchanged, i.e. it uses "normal" names and allows you to override targets in the dependency list.
When using include, the included targets cannot be overridden and their depends attributes are rewritten so that prefixed names are used. This allows writers of the included file to control which target is invoked as part of the dependencies.
It is possible to include the same file more than once by using different prefixes, it is not possible to import the same file more than once.
例如官方的例子, 下面是要被導入的nested.xml
結論: 如果沒有要改動到導入的XML東西用include即可,反之則用import<project> <target name="setUp"> <property name="prop" value="in nested.xml"/> </target> <target name="echo" depends="setUp"> <echo>prop has the value ${prop}</echo> </target> </project>如果用import結果會是<project default="test"> <target name="setUp"> <property name="prop" value="in importing"/> </target> <import file="nested.xml" as="nested"/> <target name="test" depends="nested.echo"/> </project>setUp: nested.echo: [echo] prop has the value in importing test:如果用include結果會變成<project default="test"> <target name="setUp"> <property name="prop" value="in importing"/> </target> <include file="nested.xml" as="nested"/> <target name="test" depends="nested.echo"/> </project>nested.setUp: nested.echo: [echo] prop has the value in nested.xml test:
沒有留言:
張貼留言