I have been googling for the "Differences between fileset and path" article for some time, but have found nothing useful. For example,开发者_如何学编程 what is the difference between the following (say, there is a someDir directory, which contains .jar files and has no subdirectories):
<path id="somePathId">
<pathelement path="someDir"/>
</path>
<path id="someId">
<path refid="somePathId" />
</path>
and
<path id="someId">
<fileset dir="someDir">
<include name="*.*">
</fileset>
</path>
?
They are used in different situations.
fileset
is used to specify a group of files. You can use selector
s and patternset
s to get only the files you want.
classpath
is used to specify classpath references. classpath
can be specified with a single jar (location="..."
), a ;
or :
separated list of jars (path="..."
) or with nested resource collections (like fileset
).
Also if you want to debug them, it is different:
<echo message="Build-path: ${toString:build-path}" />
vs
<property name="debug.classpath" refid="classpath"/>
<echo message="Classpath = ${debug.classpath}"/>
As for your scripts,
<path id="somePathId">
<pathelement location="someDir"/>
</path>
I did not test it but according to the documentation path=
expects a ;
or :
separated list of jars. This is not the same as your second example.
The major difference between a <path>
and a <fileset>
is that in <fileset>
you can specify if you want to include or exclude certain type of files (Basically, its a group of files within a path... not necessary all the files), for eg:
<path id="someId">
<fileset dir="someDir">
<include name="*.java">
<include name="*.properties">
</fileset>
</path>
精彩评论