I'm using Ant to build large C/C++/Java applications composed of many libraries, binaries, and JARs. I factor out my common things in a few build files in a config directory, and use one build file per library/binary/jar that imports a common build file. This works great, and <import> and <subant> are invaluable new Ant 1.6 tools to design such large builds.
To get to each of the library/binary/jar build file, I have a very simple and generic recurse.xml (shown below) build file that one imports, just defining the buildpath to recurse into. In a typical layout, the top-level build.xml (which imports recurse.xml) delegates to src/lib/build.xml and src/bin/build.xml, and src/java/build.xml. These build files then in turn delegate to their own sub-builds (src/lib/build.xml recurses into dbtools/build.xml and utils/build.xml). The find command below shows the test layout I setup for demoing my pb. Before showing my pb, I've output a successful traversal of all the build files. Then I edited src/java/build.xml to reference a directory that does not exist in the build path: the build failed, as expected, but where I'm getting at is that the failure stack trace just shows the error from originating from recurse.xml with no mention of which build files imported recurse.xml. The error message is explicit enough though to find out what's wrong, and where. I then added the missing directory, but not the build.xml file. The failed again of course, and the error message is still helpful enough to figure it out. But now I touched the missing build.xml, which is thus empty, and this time the error message is not helpful, and it's really hard to figure out where the problem lies. Here is the error message and trace from the bottom of this email: BUILD FAILED C:\oss\org_apache\antx\recurse\config\recurse.xml:15: The following error occurred while executing this line: C:\oss\org_apache\antx\recurse\config\recurse.xml:15: The following error occurred while executing this line: Premature end of file. So basically what I requesting is that Ant outputs an error like this: BUILD FAILED C:\oss\org_apache\antx\recurse\config\recurse.xml:15: The following error occurred while executing this line: imported from C:\oss\org_apache\antx\recurse\build.xml:5 C:\oss\org_apache\antx\recurse\config\recurse.xml:15: The following error occurred while executing this line: Premature end of file. imported from C:\oss\org_apache\antx\recurse\src\lib\build.xml:5 So that troubleshooting the issue becomes much easier. If additionally the Premature end of file could mention which file prematurely ended, that would be even better ;-) Thanks, --DD PS: FWIW, someone added a file in ClearCase, and checked in the directory containing the file without checking in the file itself, resulting in the empty build file. So this is a real world failure ;-) C:\oss\org_apache\antx\recurse>dir /S /B C:\oss\org_apache\antx\recurse\build.xml C:\oss\org_apache\antx\recurse\config C:\oss\org_apache\antx\recurse\src C:\oss\org_apache\antx\recurse\config\common.xml C:\oss\org_apache\antx\recurse\config\recurse.xml C:\oss\org_apache\antx\recurse\src\bin C:\oss\org_apache\antx\recurse\src\java C:\oss\org_apache\antx\recurse\src\lib C:\oss\org_apache\antx\recurse\src\bin\build.xml C:\oss\org_apache\antx\recurse\src\bin\dbserver C:\oss\org_apache\antx\recurse\src\bin\plot C:\oss\org_apache\antx\recurse\src\bin\dbserver\build.xml C:\oss\org_apache\antx\recurse\src\bin\plot\build.xml C:\oss\org_apache\antx\recurse\src\java\build.xml C:\oss\org_apache\antx\recurse\src\java\jdbserver C:\oss\org_apache\antx\recurse\src\java\missing C:\oss\org_apache\antx\recurse\src\java\jdbserver\build.xml C:\oss\org_apache\antx\recurse\src\java\missing\build.xml C:\oss\org_apache\antx\recurse\src\lib\build.xml C:\oss\org_apache\antx\recurse\src\lib\dbtools C:\oss\org_apache\antx\recurse\src\lib\utils C:\oss\org_apache\antx\recurse\src\lib\dbtools\build.xml C:\oss\org_apache\antx\recurse\src\lib\utils\build.xml C:\oss\org_apache\antx\recurse>type src\java\build.xml <?xml version="1.0"?> <project name="src/java" default="build"> <import file="../../config/recurse.xml" /> <path id="buildpath"> <pathelement location="jdbserver" /> <pathelement location="missing" /> </path> </project> C:\oss\org_apache\antx\recurse>type config\recurse.xml <?xml version="1.0"?> <project name="recurse"> <target name="clean"> <subant buildpathref="buildpath" target="clean" /> </target> <target name="build"> <subant buildpathref="buildpath" target="build" /> </target> <target name="trace"> <echo>Recursing from ${ant.project.name}: ${ant.file}</echo> <subant buildpathref="buildpath" target="trace" /> </target> </project> C:\oss\org_apache\antx\recurse> C:\oss\org_apache\antx\recurse>dir src\java\missing Volume in drive C has no label. Volume Serial Number is 6051-15B3 Directory of C:\oss\org_apache\antx\recurse\src\java\missing 08/20/2004 10:14a <DIR> . 08/20/2004 10:14a <DIR> .. 08/20/2004 10:14a 0 build.xml 1 File(s) 0 bytes 2 Dir(s) 2,265,778,688 bytes free C:\oss\org_apache\antx\recurse> C:\oss\org_apache\antx\recurse>C:\pro\ant\1.6.2\bin\ant trace Buildfile: build.xml trace: [echo] Recursing from recurse-demo: C:\oss\org_apache\antx\recurse\build.xml trace: [echo] Recursing from src/lib: C:\oss\org_apache\antx\recurse\src\lib\build.xml trace: [echo] Recursed into utils: C:\oss\org_apache\antx\recurse\src\lib\utils\build.xml trace: [echo] Recursed into dbtools: C:\oss\org_apache\antx\recurse\src\lib\dbtools\build.xml trace: [echo] Recursing from src/bin: C:\oss\org_apache\antx\recurse\src\bin\build.xml trace: [echo] Recursed into dbserver: C:\oss\org_apache\antx\recurse\src\bin\dbserver\build.xml trace: [echo] Recursed into plot: C:\oss\org_apache\antx\recurse\src\bin\plot\build.xml trace: [echo] Recursing from src/java: C:\oss\org_apache\antx\recurse\src\java\build.xml trace: [echo] Recursed into jdbserver: C:\oss\org_apache\antx\recurse\src\java\jdbserver\build.xml BUILD SUCCESSFUL Total time: 1 second C:\oss\org_apache\antx\recurse> C:\oss\org_apache\antx\recurse>C:\pro\ant\1.6.2\bin\ant trace Buildfile: build.xml ... trace: [echo] Recursing from src/java: C:\oss\org_apache\antx\recurse\src\java\build.xml trace: [echo] Recursed into jdbserver: C:\oss\org_apache\antx\recurse\src\java\jdbserver\build.xml BUILD FAILED C:\oss\org_apache\antx\recurse\config\recurse.xml:15: The following error occurred while executing this line: C:\oss\org_apache\antx\recurse\config\recurse.xml:15: Invalid file: C:\oss\org_apache\antx\recurse\src\java\missing Total time: 1 second C:\oss\org_apache\antx\recurse>md src\java\missing C:\oss\org_apache\antx\recurse>C:\pro\ant\1.6.2\bin\ant trace Buildfile: build.xml ... trace: [echo] Recursing from src/java: C:\oss\org_apache\antx\recurse\src\java\build.xml trace: [echo] Recursed into jdbserver: C:\oss\org_apache\antx\recurse\src\java\jdbserver\build.xml BUILD FAILED C:\oss\org_apache\antx\recurse\config\recurse.xml:15: The following error occurred while executing this line: C:\oss\org_apache\antx\recurse\config\recurse.xml:15: Invalid file: C:\oss\org_apache\antx\recurse\src\java\missing\build.xml Total time: 1 second C:\oss\org_apache\antx\recurse>touch src\java\missing\build.xml C:\oss\org_apache\antx\recurse>C:\pro\ant\1.6.2\bin\ant trace Buildfile: build.xml ... trace: [echo] Recursing from src/java: C:\oss\org_apache\antx\recurse\src\java\build.xml trace: [echo] Recursed into jdbserver: C:\oss\org_apache\antx\recurse\src\java\jdbserver\build.xml BUILD FAILED C:\oss\org_apache\antx\recurse\config\recurse.xml:15: The following error occurred while executing this line: C:\oss\org_apache\antx\recurse\config\recurse.xml:15: The following error occurred while executing this line: Premature end of file. Total time: 1 second C:\oss\org_apache\antx\recurse> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]