Josh,

Brilliant! Back to things that "just work"! Maybe my grandmother could use
maven... hmmm... ;-)

Best wishes,

--greg

On Mon, Mar 2, 2009 at 5:57 PM, Josh Suereth <[email protected]>wrote:

> Greg,
>
> I'm guessing that you're generated java classes with that commented out
> section?  You have to ensure that the maven-scala-plugin is run *before* the
> java compiler when using mixed-java/scala projects.
>
> Here's the mvn-fu (also shown 
> here<http://scala-tools.org/mvnsites/maven-scala-plugin/usage_java.html>
> ):
>
> <plugin>
>                               <groupId>org.scala-tools</groupId>
>                               <artifactId>maven-scala-plugin</artifactId>
>
>                               <executions>
>                                       <execution>
>                                               <id>scala-compile-first</id>
>                                               <phase>process-resources</phase>
>                                               <goals>
>                                                   <goal>add-source</goal>
>
>                                                       <goal>compile</goal>
>                                               </goals>
>                                       </execution>                            
>                                         
>                                       <execution>
>                                               <id>scala-test-compile</id>
>                                               
> <phase>process-test-resources</phase>
>
>                                               <goals>
>                                                       <goal>testCompile</goal>
>                                               </goals>
>                                       </execution>
>                               </executions>
>                       </plugin>
>
>
>
> What we're doing is "faking" the order of execution (as there's a "design
> flaw" in maven 2.0.x that is being fixed in 3.0).  See 
> here<http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html>for
>  the full maven lifecycle.  I'm going to list out the goals I see bound
> to phases in your build (if you use the above configuration):
>
> process-sources <- maven-jaxb-schemagen-plugin : generate   (generates your
> .java files)
> process-resources <- {
>     maven-resources-plugin : copy-resources  (moves resources to "target"
> directory)
>     maven-scala-plugin : compile  (Compiles .scala code, passing .java
> files to scalac)
> }
> compile <- maven-compiler-plugin : compile (Compiles Java code, including
> generated code)
> process-test-resources <- maven-scala-plugin : testCompile (compiles .scala
> code, passing .java files to scalac)
> test-compile <- maven-compiler-plugin : testCompile (Compiles java testing
> code)
> test <- maven-surefire-plugin : test (Runs junit/other tests)
> package <- maven-war-plugin : war  (Creates your war file)
> ...
>
>
> As you can see, this method (although slightly a hack) ensures the proper
> ordering of plugins so your build should complete successfully!
>
> -Josh
>
>
> On Mon, Mar 2, 2009 at 7:29 PM, Meredith Gregory <[email protected]
> > wrote:
>
>> Josh,
>>
>> Thanks for the response. Sadly, my mvn-fu is novitiate level; so, the pom
>> is little more than the vanilla pom that comes with a lift archetype. See
>> below.
>>
>> Best wishes,
>>
>> --greg
>>
>>
>> <project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="
>> http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="
>> http://maven.apache.org/POM/4.0.0
>> http://maven.apache.org/maven-v4_0_0.xsd";>
>>   <modelVersion>4.0.0</modelVersion>
>>   <groupId>com.sap.dspace</groupId>
>>   <artifactId>dspace</artifactId>
>>   <version>1.0-SNAPSHOT</version>
>>   <packaging>war</packaging>
>>   <name>dspace</name>
>>   <inceptionYear>2007</inceptionYear>
>>   <properties>
>>     <scala.version>2.7.3</scala.version>
>>   </properties>
>>
>>   <repositories>
>>     <repository>
>>       <id>scala-tools.org</id>
>>       <name>Scala-Tools Maven2 Repository</name>
>>       <url>http://scala-tools.org/repo-releases</url>
>>     </repository>
>>     <repository>
>>       <id>maven2-repository.dev.java.net</id>
>>       <name>Java.net Repository for Maven</name>
>>       <url>http://download.java.net/maven/2</url>
>>       <layout>default</layout>
>>     </repository>
>>     <repository>
>>       <id>dspace-local-repo</id>
>>       <url>file://${basedir}/vendor/lib</url>
>>     </repository>
>>   </repositories>
>>
>>   <pluginRepositories>
>>     <pluginRepository>
>>       <id>scala-tools.org</id>
>>       <name>Scala-Tools Maven2 Repository</name>
>>       <url>http://scala-tools.org/repo-releases</url>
>>     </pluginRepository>
>>     <pluginRepository>
>>       <id>maven2-repository.dev.java.net</id>
>>       <name>Java.net Repository for Maven</name>
>>       <url>http://download.java.net/maven/2</url>
>>     </pluginRepository>
>>   </pluginRepositories>
>>
>>   <dependencies>
>>     <dependency>
>>       <groupId>org.scala-lang</groupId>
>>       <artifactId>scala-library</artifactId>
>>       <version>${scala.version}</version>
>>     </dependency>
>>     <dependency>
>>       <groupId>net.liftweb</groupId>
>>       <artifactId>lift-core</artifactId>
>>       <version>1.0</version>
>>     </dependency>
>>     <dependency>
>>       <groupId>org.apache.derby</groupId>
>>       <artifactId>derby</artifactId>
>>       <version>10.2.2.0</version>
>>     </dependency>
>>     <dependency>
>>       <groupId>javax.servlet</groupId>
>>       <artifactId>servlet-api</artifactId>
>>       <version>2.5</version>
>>       <scope>provided</scope>
>>     </dependency>
>>     <dependency>
>>       <groupId>junit</groupId>
>>       <artifactId>junit</artifactId>
>>       <version>3.8.1</version>
>>       <scope>test</scope>
>>     </dependency>
>>     <dependency>
>>       <groupId>org.mortbay.jetty</groupId>
>>       <artifactId>jetty</artifactId>
>>       <version>[6.1.6,)</version>
>>       <scope>test</scope>
>>     </dependency>
>>     <!-- for LiftConsole -->
>>     <dependency>
>>       <groupId>org.scala-lang</groupId>
>>       <artifactId>scala-compiler</artifactId>
>>       <version>${scala.version}</version>
>>       <scope>test</scope>
>>     </dependency>
>>
>>     <dependency>
>>       <groupId>geronimo-spec</groupId>
>>       <artifactId>geronimo-spec-ejb</artifactId>
>>       <version>2.1-rc4</version>
>>     </dependency>
>>     <dependency>
>>       <groupId>org.hibernate</groupId>
>>       <artifactId>hibernate-entitymanager</artifactId>
>>       <version>3.3.2.GA</version>
>>       <exclusions>
>>     <exclusion>
>>       <groupId>javax.transaction</groupId>
>>       <artifactId>jta</artifactId>
>>     </exclusion>
>>       </exclusions>
>>     </dependency>
>>     <dependency>
>>       <groupId>geronimo-spec</groupId>
>>       <artifactId>geronimo-spec-jta</artifactId>
>>       <version>1.0.1B-rc4</version>
>>       <scope>provided</scope>
>>     </dependency>
>>     <!-- local hibernate stuff -->
>>     <dependency>
>>       <groupId>hibernate</groupId>
>>       <artifactId>hibernate3</artifactId>
>>       <version>local</version>
>>     </dependency>
>>     <dependency>
>>       <groupId>hibernate</groupId>
>>       <artifactId>hibernate-tools</artifactId>
>>       <version>local</version>
>>     </dependency>
>>     <dependency>
>>       <groupId>mysql</groupId>
>>       <artifactId>mysql-connector-java</artifactId>
>>       <version>local</version>
>>     </dependency>
>>     <!-- Needed for schemagen -->
>>     <dependency>
>>       <groupId>com.sun.xml.bind</groupId>
>>       <artifactId>jaxb-xjc</artifactId>
>>       <version>2.0.2</version>
>>     </dependency>
>>     <!-- Needed for schemagen -->
>>     <dependency>
>>       <groupId>javax.activation</groupId>
>>       <artifactId>activation</artifactId>
>>       <version>1.1</version>
>>     </dependency>
>>     <!-- Needed for schemagen -->
>>     <dependency>
>>       <groupId>javax.xml.bind</groupId>
>>       <artifactId>jsr173_api</artifactId>
>>       <version>1.0</version>
>>     </dependency>
>>     <dependency>
>>       <groupId>com.sun.jersey</groupId>
>>       <artifactId>jersey-server</artifactId>
>>       <version>1.0</version>
>>     </dependency>
>>     <dependency>
>>       <groupId>com.sun.jersey</groupId>
>>       <artifactId>jersey-client</artifactId>
>>       <version>1.0</version>
>>       <scope>test</scope>
>>     </dependency>
>>     <dependency>
>>       <groupId>com.sun.grizzly</groupId>
>>       <artifactId>grizzly-servlet-webserver</artifactId>
>>       <version>1.8.6</version>
>>     </dependency>
>>   </dependencies>
>>
>>   <build>
>>     <sourceDirectory>src/main/scala</sourceDirectory>
>>     <testSourceDirectory>src/test/scala</testSourceDirectory>
>>     <plugins>
>>       <plugin>
>>         <groupId>org.apache.maven.plugins</groupId>
>>         <artifactId>maven-compiler-plugin</artifactId>
>>         <configuration>
>>           <source>1.5</source>
>>           <target>1.5</target>
>>         </configuration>
>>       </plugin>
>>       <plugin>
>>         <groupId>org.scala-tools</groupId>
>>         <artifactId>maven-scala-plugin</artifactId>
>>         <executions>
>>           <execution>
>>             <goals>
>>               <goal>compile</goal>
>>               <goal>testCompile</goal>
>>             </goals>
>>           </execution>
>>         </executions>
>>         <configuration>
>>           <scalaVersion>${scala.version}</scalaVersion>
>>       <displayCmd>true</displayCmd>
>>       <jvmArgs>
>>          <jvmArg>-Xdebug</jvmArg>
>>          <jvmArg>-Xnoagent</jvmArg>
>>          <jvmArg>-Djava.compiler=NONE</jvmArg>
>>
>> <jvmArg>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005</jvmArg>
>>       </jvmArgs>
>>         </configuration>
>>       </plugin>
>>       <plugin>
>>         <groupId>org.mortbay.jetty</groupId>
>>         <artifactId>maven-jetty-plugin</artifactId>
>>         <configuration>
>>           <contextPath>/</contextPath>
>>           <scanIntervalSeconds>5</scanIntervalSeconds>
>>         </configuration>
>>       </plugin>
>>       <plugin>
>>         <groupId>net.sf.alchim</groupId>
>>         <artifactId>yuicompressor-maven-plugin</artifactId>
>>         <executions>
>>           <execution>
>>             <goals>
>>               <goal>compress</goal>
>>             </goals>
>>           </execution>
>>         </executions>
>>         <configuration>
>>           <nosuffix>true</nosuffix>
>>         </configuration>
>>       </plugin>
>>       <plugin>
>>         <groupId>org.apache.maven.plugins</groupId>
>>         <artifactId>maven-eclipse-plugin</artifactId>
>>         <configuration>
>>           <downloadSources>true</downloadSources>
>>           <excludes>
>>             <exclude>org.scala-lang:scala-library</exclude>
>>           </excludes>
>>           <classpathContainers>
>>
>> <classpathContainer>ch.epfl.lamp.sdt.launching.SCALA_CONTAINER</classpathContainer>
>>           </classpathContainers>
>>           <projectnatures>
>>
>> <java.lang.String>ch.epfl.lamp.sdt.core.scalanature</java.lang.String>
>>
>> <java.lang.String>org.eclipse.jdt.core.javanature</java.lang.String>
>>           </projectnatures>
>>           <buildcommands>
>>
>> <java.lang.String>ch.epfl.lamp.sdt.core.scalabuilder</java.lang.String>
>>           </buildcommands>
>>         </configuration>
>>       </plugin>
>>       <plugin>
>>         <groupId>com.sun.tools.jxc.maven2</groupId>
>>         <artifactId>maven-jaxb-schemagen-plugin</artifactId>
>>     <version>1.2</version>
>>     <configuration>
>>       <destdir>${project.build.directory}/generated-schema</destdir>
>>       <schemas>
>>         <schema>
>>           <namespace>http://dspace.sap.com/</namespace>
>>           <file>constellation.xsd</file>
>>         </schema>
>>       </schemas>
>>       <srcdir>${basedir}/src/main/java/constellation.pojos</srcdir>
>>       <verbose>true</verbose>
>>     </configuration>
>>     <!-- <executions> -->
>> <!--       <execution> -->
>> <!--         <phase>process-sources</phase> -->
>> <!--         <configuration> -->
>> <!--
>> <destdir>${project.build.directory}/generated-schema</destdir> -->
>> <!--           <schemas> -->
>> <!--         <schema> -->
>> <!--           <namespace>http://dspace.sap.com/</namespace> -->
>> <!--           <file>constellation.xsd</file> -->
>> <!--         </schema> -->
>> <!--           </schemas> -->
>> <!--
>> <srcdir>${project.build.directory}/../src/main/java/com/sap/dspace/model/constellation</srcdir>
>> -->
>> <!--           <verbose>true</verbose> -->
>> <!--         </configuration> -->
>> <!--         <goals> -->
>> <!--           <goal>generate</goal> -->
>> <!--         </goals> -->
>> <!--       </execution> -->
>> <!--     </executions> -->
>>       </plugin>
>>       <!--  Maven Exec Plug-In:
>> http://mojo.codehaus.org/exec-maven-plugin/  -->
>>       <plugin>
>>     <groupId>org.codehaus.mojo</groupId>
>>     <artifactId>exec-maven-plugin</artifactId>
>>     <version>1.1</version>
>>     <executions>
>>       <execution>
>>         <goals>
>>           <goal>java</goal>
>>         </goals>
>>       </execution>
>>     </executions>
>>     <configuration>
>>       <mainClass>com.sap.dspace.lib.Main</mainClass>
>>     </configuration>
>>       </plugin>
>>     </plugins>
>>   </build>
>>   <reporting>
>>     <plugins>
>>       <plugin>
>>         <groupId>org.scala-tools</groupId>
>>         <artifactId>maven-scala-plugin</artifactId>
>>         <configuration>
>>           <scalaVersion>${scala.version}</scalaVersion>
>>         </configuration>
>>       </plugin>
>>     </plugins>
>>   </reporting>
>> </project>
>>
>>
>>
>> On Mon, Mar 2, 2009 at 3:50 PM, Josh Suereth <[email protected]>wrote:
>>
>>> Mind sending me a pom and general layout of your project structure?
>>>
>>> There could be two solutions:  1- Move things into a multi-module project
>>> where your model.scala exists in one module and the other code in another
>>> module or 2 - We make sure the goal->phase bindings are appropriate for what
>>> you want to do.
>>>
>>>
>>> -Josh
>>>
>>>
>>> On Mon, Mar 2, 2009 at 6:42 PM, Meredith Gregory <
>>> [email protected]> wrote:
>>>
>>>> Lifted,
>>>>
>>>> i've got all the classes i generate making a class to a Model object
>>>> derived from the nice work that Derek did on the JPA demo. Now, here's the
>>>> rub. For some reason it's compiling the generated classes before tackling
>>>> the compilation of the model object. So... the compilation craps out. i've
>>>> been working around this by generating the classes, compiling the project
>>>> (without the classes) then moving them into place in the model directory 
>>>> and
>>>> compiling the project again. What's the pretty way to enforce this
>>>> sequentialization in maven. i really want these classes compiled *after
>>>> * the Model.scala file is compiled. i'd like not to say much more than
>>>> this ordering constraint to maven -- if at all possible.
>>>>
>>>> Best wishes,
>>>>
>>>> --greg
>>>>
>>>> --
>>>> L.G. Meredith
>>>> Managing Partner
>>>> Biosimilarity LLC
>>>> 806 55th St NE
>>>> Seattle, WA 98105
>>>>
>>>> +1 206.650.3740
>>>>
>>>> http://biosimilarity.blogspot.com
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>> --
>> L.G. Meredith
>> Managing Partner
>> Biosimilarity LLC
>> 806 55th St NE
>> Seattle, WA 98105
>>
>> +1 206.650.3740
>>
>> http://biosimilarity.blogspot.com
>>
>>
>>
>
> >
>


-- 
L.G. Meredith
Managing Partner
Biosimilarity LLC
806 55th St NE
Seattle, WA 98105

+1 206.650.3740

http://biosimilarity.blogspot.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to