Hi, I am trying to write an Ant build.xml file to compile and run a Java (Groovy) app without too much success. I spent a day reading the Ant manual and trying all sorts of things. The ant file builds the classes correctly but apparently fails to include the current directory at runtime. I think my classpath in the Ant file is not specified properly, I can't get Ant to include the current directory in the java classpath. I can run my app from the Windows command line like the following and that's what I want Ant to run:
C:\Groovy_JPADownstream>java -cp ./lib/derby.jar;./lib/derbyclient.jar;./lib/toplink-essentials.jar;%GROOVY_HOME%/embeddable/groovy-all-1.5.4.jar;./classes;. downstream/PopulateDownstream but when I run the Ant file I get the following error message that seems to indicate that the "META-INF\persistence.xml" file is not found by JPA: [java] java.lang.NullPointerException [java] at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:120) [java] at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83) meaning that it doesn't see the META-INF/persistence.xml file from the current directory Here are the build file and the file structure: <project name = "GroovyJPA" default = "run" basedir = "."> <property environment = "env"/> <property name = "persistenceconfig.dir" location = "**/*"/> <!-- We need the current dir here --> <property name = "lib.dir" location = "lib"/> <property name = "src.dir" location = "src"/> <property name = "classes.dir" location = "classes"/> <!-- Groovy jar --> <path id = "groovy.classpath"> <fileset dir = "${env.GROOVY_HOME}/embeddable/"/> </path> <!-- Application jars: DerbyDB, JPA Toplink + persistence.xml --> <path id = "app.classpath"> <fileset dir = "${env.GROOVY_HOME}/embeddable/"/> <pathelement location="${classes.dir}"/> <!-- Should be: ../lib/derby.jar;../lib/derbyclient.jar;../lib/toplink-essentials.jar --> <fileset dir = "${lib.dir}"/> <!-- /META-INF/persistence.xml --> <pathelement location="${persistenceconfig.dir}"/> </path> <taskdef name ="groovyc" classname = "org.codehaus.groovy.ant.Groovyc" classpathref = "groovy.classpath"/> <target name = "compile"> <mkdir dir = "${classes.dir}"/> <groovyc destdir = "${classes.dir}" srcdir = "${src.dir}" includes = "*.groovy" classpathref = "app.classpath" /> </target> <!-- This works: C:\Groovy_JPADownstream>java -cp ./lib/derby.jar;./lib/derbyclient.jar;./lib/toplink-essentials.jar;%GROOVY_HOME%/embeddable/groovy-all-1.5.4.jar;./classes;. downstream/PopulateDownstream --> <target name = "run" depends = "compile"> <java classname = "downstream.PopulateDownstream"> <classpath refid = "app.classpath"/> </java> </target> </project> ================== C:\Groovy_JPADownstream\build.xml C:\Groovy_JPADownstream\lib C:\Groovy_JPADownstream\lib\derby.jar C:\Groovy_JPADownstream\lib\derbyclient.jar C:\Groovy_JPADownstream\lib\toplink-essentials-agent.jar C:\Groovy_JPADownstream\lib\toplink-essentials.jar C:\Groovy_JPADownstream\META-INF C:\Groovy_JPADownstream\META-INF\persistence.xml C:\Groovy_JPADownstream\src C:\Groovy_JPADownstream\src\Location.groovy C:\Groovy_JPADownstream\src\LocationType.groovy C:\Groovy_JPADownstream\src\PopulateDownstream.groovy C:\Groovy_JPADownstream\src\QueryDownstream.groovy C:\Groovy_JPADownstream\classes C:\Groovy_JPADownstream\classes\downstream C:\Groovy_JPADownstream\classes\downstream\Location.class C:\Groovy_JPADownstream\classes\downstream\LocationType.class C:\Groovy_JPADownstream\classes\downstream\PopulateDownstream.class C:\Groovy_JPADownstream\classes\downstream\QueryDownstream.class Thanks, Fred --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]