83

I'm trying to get a target to build that has quite a long list of <pathelement location="${xxx}"/> and <path refid="foo.class.path"/> elements in its <path id="bar.class.path"> element (in the build.xml file). I keep getting "package com.somecompany.somepackage does not exist" errors, and I'm having a hard time chasing down these packages and making sure I've synced them from our repository.

I'm new to this team so I'm unfamiliar with the build, but I would prefer to figure this out myself if possible (so I don't bother the other very busy team members). I have very limited experience with Ant.

I think it would save me quite a bit of time if I could have Ant print out the classpath for the target I'm trying to build.

Daryl Spitzer
  • 143,156
  • 76
  • 154
  • 173

2 Answers2

128

Use the pathconvert task to convert a path to a property

<path id="classpath">
....
</path>

<pathconvert property="classpathProp" refid="classpath"/>

<echo>Classpath is ${classpathProp}</echo>

Docs for pathconvert.

martin clayton
  • 76,436
  • 32
  • 213
  • 198
karoberts
  • 9,828
  • 4
  • 39
  • 39
72

This is even easier with versions of Ant > 1.6

<echo>${toString:classpath}</echo>

See http://ant.apache.org/manual/using.html#pathshortcut for more information

iain
  • 10,798
  • 3
  • 37
  • 41