Thanks all, I've got it working now :) AlanĀ
-----Original Message----- From: Michael Dick [mailto:[email protected]] Sent: 18 May 2009 22:45 To: [email protected] Subject: Re: Building in Eclipse I think this is a variation on the "one big project" approach that some people seem to like. I prefer to build each module as a separate compilable unit (ie the way maven does). The benefit is that when I break access rules (ie try to reference something from openjpa-jdbc in openjpa-kernel) my eclipse build failes before I do a real maven build.. It's all personal preference though and YMMV.. IDEA and NetBeans have built in maven support that (I'm told) works pretty nice. I can't give up Eclipse's incremental compiles though. FWIW the steps for the multiple module approach are on our wiki at [1]. If you're willing to start from scratch that might be a good place to do. Donald's done a great job of updating that section of the wiki to keep it up to date (thanks Donald). [1] http://cwiki.apache.org/confluence/display/openjpa/Building#Building-Eclipse Hope this helps, -mike On Mon, May 18, 2009 at 1:13 PM, Pinaki Poddar <[email protected]> wrote: > > Hi Alan, > I build/debug OpenJPA in Eclipse in a somewhat non-kosher way. The > complexity arises because OpenJPA is a multi-module project and requires > some javaCC generated source code. > So I am not prescribing the steps but purely describing what works for me. > > 1. checkout openjpa source code to say a directory X. You can check the > project out from Eclipse itself too. Then ignore Step 3. > 2. compile with maven -- this will create javacc generated source code > which is required for next steps. > Also it will fetch the dependent libraries in local maven repository. > 3. create an Eclipse project with root directory X > 4. add a whole bunch of 'source folders' to the Eclipse project (see > attached .classpath and .project > files). The output for each of these 'source folders' are different and > should match maven target directory to keep maven and Eclipse build in > synch. > 5. Define a bunch of 'User Libraries' and attach the corresponding jar > that Step 2 has placed in local maven repository. > > Now the Eclipse project can be cleaned and built with 3 errors about > javaCC generated code. I still could not get rid of them -- but they seemed > to be harmless enough for me so far. > > =============== .project file ====================================== > <?xml version="1.0" encoding="UTF-8"?> > <projectDescription> > <name>trunk</name> > <comment></comment> > <projects> > </projects> > <buildSpec> > <buildCommand> > <name>org.eclipse.jdt.core.javabuilder</name> > <arguments> > </arguments> > </buildCommand> > </buildSpec> > <natures> > <nature>org.eclipse.jdt.core.javanature</nature> > </natures> > </projectDescription> > > ============== .classpath file ========================================== > <?xml version="1.0" encoding="UTF-8"?> > <classpath> > <classpathentry kind="src" output="openjpa-lib/target/classes" > path="openjpa-lib/src/main/java"/> > <classpathentry kind="src" output="openjpa-jdbc/target/test-classes" > path="openjpa-jdbc/src/test/java"/> > <classpathentry kind="src" output="openjpa-kernel/target/classes" > path="openjpa-kernel/target/generated-sources/jjtree"/> > <classpathentry kind="src" output="openjpa-kernel/target/classes" > path="openjpa-kernel/target/generated-sources/javacc"/> > <classpathentry kind="src" output="openjpa-lib/target/test-classes" > path="openjpa-lib/src/test/java"> > <attributes> > <attribute name="maven.type" value="test"/> > </attributes> > </classpathentry> > <classpathentry excluding="**" kind="src" > output="openjpa-lib/src/main/resources" > path="openjpa-lib/src/main/resources"/> > <classpathentry excluding="**" kind="src" output="openjpa-project" > path="openjpa-project"/> > <classpathentry excluding="**" kind="src" > output="openjpa-lib/src/test/resources" > path="openjpa-lib/src/test/resources"/> > <classpathentry kind="src" output="openjpa-kernel/target/classes" > path="openjpa-kernel/src/main/java"/> > <classpathentry kind="src" > output="openjpa-kernel/target/test-classes" > path="openjpa-kernel/src/test/java"> > <attributes> > <attribute name="maven.type" value="test"/> > </attributes> > </classpathentry> > <classpathentry excluding="**" kind="src" > output="openjpa-kernel/src/main/resources" > path="openjpa-kernel/src/main/resources"/> > <classpathentry kind="src" output="openjpa-jdbc/target/classes" > path="openjpa-jdbc/src/main/java"/> > <classpathentry excluding="**" kind="src" > output="openjpa-jdbc/src/main/resources" > path="openjpa-jdbc/src/main/resources"/> > <classpathentry kind="src" > output="openjpa-persistence/target/classes" > path="openjpa-persistence/src/main/java"/> > <classpathentry kind="src" > output="openjpa-persistence/target/test-classes" > path="openjpa-persistence/src/test/java"> > <attributes> > <attribute name="maven.type" value="test"/> > </attributes> > </classpathentry> > <classpathentry excluding="**" kind="src" > output="openjpa-persistence/target/classes" > path="openjpa-persistence/src/main/resources"/> > <classpathentry kind="src" > output="openjpa-persistence-jdbc/target/classes" > path="openjpa-persistence-jdbc/src/main/java"/> > <classpathentry kind="src" > output="openjpa-persistence-jdbc/target/test-classes" > path="openjpa-persistence-jdbc/src/test/java"> > <attributes> > <attribute name="maven.type" value="test"/> > </attributes> > </classpathentry> > <classpathentry excluding="**" kind="src" > output="openjpa-persistence-jdbc/src/main/resources" > path="openjpa-persistence-jdbc/src/main/resources"/> > <classpathentry excluding="**" kind="src" > output="openjpa-persistence-jdbc/src/test/resources" > path="openjpa-persistence-jdbc/src/test/resources"/> > <classpathentry kind="src" output="openjpa-xmlstore/target/classes" > path="openjpa-xmlstore/src/main/java"/> > <classpathentry kind="src" output="openjpa-slice/target/classes" > path="openjpa-slice/src/main/java"/> > <classpathentry kind="src" > output="openjpa-slice/target/test-classes" > path="openjpa-slice/src/test/java"> > <attributes> > <attribute name="maven.type" value="test"/> > </attributes> > </classpathentry> > <classpathentry excluding="**" kind="src" > output="openjpa-slice/src/main/resources" > path="openjpa-slice/src/main/resources"/> > <classpathentry excluding="**" kind="src" > output="openjpa-slice/src/test/resources" > path="openjpa-slice/src/test/resources"/> > <classpathentry excluding="reversemapping/*.java" kind="src" > output="openjpa-examples/target/classes" > path="openjpa-examples/src/main/java"/> > <classpathentry kind="src" > output="openjpa-examples/target/test-classes" > path="openjpa-examples/src/test/java"> > <attributes> > <attribute name="maven.type" value="test"/> > </attributes> > </classpathentry> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.launching.JRE_CONTAINER"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/APACHE_ANT"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/COMMONS_COLL"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LANG"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LOG"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/COMMONS_POOL"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/HSQLDB"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/JMS"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/JPA_2.0_PD"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/JTA"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/LOG4J"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/POSTGRES"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/REGEX"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/SERP_1.13.1"/> > <classpathentry exported="true" kind="con" > path="org.eclipse.jdt.USER_LIBRARY/UOW"/> > <classpathentry kind="output" path="bin"/> > </classpath> > > > > > Alan Raison wrote: > > > > Hi > > > > Does anyone have any experience (preferably successful) of building > > openjpa-kernel in Eclipse? > > > > I've found that checking out each sub-project from trunk usually works > > fine when building against a released version (as then I can download > > the pre-compiled openjpa-kernel from the maven repo) but this doesn't > > work so well when working with trunk. > > > > Working from the command line is fine but a bit limited in Windows - > > especially when trying to patch the source! > > > > My specific issue is that Eclipse complains of compile errors in the > > (src/main/java/)org.apache.openjpa.kernel.jpql package as these files > > depend on the jjtree sources. If I add target/generated-sources/javacc > > to the build path I get a name clash with the SimpleNode class in both > > the src/main/java and target/generated-sources/javacc folders. I also > > tried adding the target/generated-sources/jjtree folder in place of the > > target/generated-sources/javacc folder but this didn't work either. > > > > Sorry if I am being thick with this. I need my IDE!! ;) > > > > Alan > > > > > > > > > ----- > Pinaki Poddar http://ppoddar.blogspot.com/ > > http://www.linkedin.com/in/pinakipoddar > OpenJPA PMC Member/Committer > JPA Expert Group Member > -- > View this message in context: > http://n2.nabble.com/Building-in-Eclipse-tp2934132p2934719.html > Sent from the OpenJPA Developers mailing list archive at Nabble.com. > >
