Stefan Bodewig schrieb am 23.08.2010 um 06:05 (+0200): > On 2010-08-23, Michael Ludwig wrote: > > > I'm wondering what's the difference between <path> and <classpath>. > > Why are there these two construct? Aren't they functionally > > identical? > > Ant contains a type - a thing you can define outside of tasks - called > <path>. This Ant type is backed by a Java class named Path. > > Some tasks support nested elements that are implemented by that same > Java class. Some tasks class it <path>, others call it <classpath> > and there are even more names used by tasks. > > This means that you can use <path id="foo"> somewhere outside of a > task and use that via <classpath refid="foo"/> in a task that calls > its nested element <classpath>.
Very good! I think I got it: <project default="build"> <property name="dest.dir" location="dest"/> <path id="class-path"><!-- This must be <path>, not <classpath>! --> <pathelement location="lib"/> </path> <target name="build"> <javac srcdir="src" destdir="dest" classpathref="class-path" includeAntRuntime="no"/> <!-- Genauso gut geht es so: --> <!-- <javac srcdir="src" destdir="dest" includeAntRuntime="no"> <classpath refid="class-path"/> </javac> --> </target> </project> > > Is it correct to say that the whole <path>/<classpath> thing can be > > explained historically by reference to the <javac> task? Which sports > > @classpath, @sourcepath, @bootclasspath and @extdirs, all <path> types? > > Not really. > > <javac> is a good example, it needs four different types of path > structures so it needs four different names for them. Good point. :-) > For the thing you can define outside of tasks, we need only one name > and <path> is the most generic one. > > > So are <path> and <classpath> interchangeable? > > Structurally, yes. But if the task calls its nested element > <classpath> then you have to use that name and can't call it <path>. And you have to use <path> if you want to refer to the path structure by, say, javac/@classpathref. You cannot refer to some classpath/@id, it has to be path/@id. Perfect, you've made it clear to me know! Thanks! -- Michael Ludwig --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@ant.apache.org For additional commands, e-mail: user-h...@ant.apache.org