Funny story. I tried replacing the Ant task with a Maven plugin, by writing a
RatsMojo class that invokes xtc.parser.Rats directly and replacing the
plugin element above with

  <plugin>
    <groupId>edu.nyu.xtc</groupId>
    <artifactId>maven-xtc-plugin</artifactId>
    <executions>
      <execution>
        <phase>generate-sources</phase>
        <goals>
          <goal>rats</goal>
        </goals>
        <configuration>
          <inputDirectory>${project.build.sourceDirectory}</inputDirectory>
          <outputDirectory>
${project.build.directory}/generated-sources/main/java</outputDirectory>
         
<grammarFile>${project.build.sourceDirectory}/Dot.rats</grammarFile>
        </configuration>
      </execution>
    </executions>
  </plugin>

It does the exact same thing: it runs Rats! then terminates without
compiling *any* of the Java files in the project.

RatsMojo.java is attached.

-Chris
http://www.nabble.com/file/p24314823/RatsMojo.java RatsMojo.java 


clconway wrote:
> 
> My project generates source code using the XTC parser generator
> (http://cs.nyu.edu/rgrimm/xtc/). XTC doesn't have a Maven plugin that
> I'm aware of, so I'm trying to build the parser using an Ant Java
> task, like so:
> 
>       <plugin>
>         <artifactId>maven-antrun-plugin</artifactId>
>         <executions>
>           <execution>
>             <phase>generate-sources</phase>
>             <configuration>
>               <tasks>
>                 <mkdir
> dir="${project.build.directory}/generated-sources/main/java/" />
>                 <java classpath="lib/xtc.jar" classname="xtc.parser.Rats">
>                   <arg line="-in ${project.build.sourceDirectory}" />
>                   <arg line="-out
> ${project.build.directory}/generated-sources/main/java/" />
>                   <arg path="${project.build.sourceDirectory}/Dot.rats" />
>                 </java>
>               </tasks>
>               <sourceRoot>
>                 ${project.build.directory}/generated-sources/main/java
>               </sourceRoot>
>             </configuration>
>             <goals>
>               <goal>run</goal>
>             </goals>
>           </execution>
>         </executions>
>       </plugin>
> 
> The details of what XTC does aren't important: the end result is that
> the above generates Dot.java and places it in
> target/generated-sources/main/java. It works fine.
> 
> The problem is that, with this plugin element in my pom.xml, none of
> the Java files in the project get compiled. In a project generated
> using "mvn archetype:create -DgroupId=foo -DartifactId=bar", if I run
> "mvn compile" without the plugin element, I get:
> 
> $ mvn compile
> [INFO] Scanning for projects...
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Building bar
> [INFO]    task-segment: [compile]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] [resources:resources]
> [INFO] Using default encoding to copy filtered resources.
> [INFO] [compiler:compile]
> [INFO] Compiling 1 source file to
> /home/chris/src/tests/maven/project1/bar/target/classes
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESSFUL
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 1 second
> [INFO] Finished at: Wed Jul 01 18:57:08 EDT 2009
> [INFO] Final Memory: 6M/67M
> [INFO]
> ------------------------------------------------------------------------
> 
> Whereas with the plugin element invoking XTC, I get (after a "mvn clean"):
> 
> $ mvn compile
> [INFO] Scanning for projects...
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Building bar
> [INFO]    task-segment: [compile]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] [antrun:run {execution: default}]
> [INFO] Executing tasks
>     [mkdir] Created dir:
> /home/chris/src/tests/maven/project1/bar/target/generated-sources/main/java
> Rats! Parser Generator, v. 1.14.2, (C) 2004-2008 Robert Grimm
> Processing /home/chris/src/tests/maven/project1/bar/src/main/java/Dot.rats
> ...
> 
> The XTC process is not failing, AFAICT.
> 
> I've tried other kinds of Ant tasks and they don't interfere with Java
> compilation. For example, if I replace the task element above with an
> echo task
> 
>               <tasks>
>                 <mkdir
> dir="${project.build.directory}/generated-sources/main/java/" />
>                 <echo
> file="${project.build.directory}/generated-sources/main/java/Dot.java">
>                   public class Dot { }
>                 </echo>
>               </tasks>
> 
> I get
> 
> $ mvn compile
> [INFO] Scanning for projects...
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Building bar
> [INFO]    task-segment: [compile]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] [antrun:run {execution: default}]
> [INFO] Executing tasks
> [INFO] Executed tasks
> [INFO] Registering compile source root
> /home/chris/src/tests/maven/project1/bar/target/generated-sources/main/java
> [INFO] [resources:resources]
> [INFO] Using default encoding to copy filtered resources.
> [INFO] [compiler:compile]
> [INFO] Compiling 2 source files to
> /home/chris/src/tests/maven/project1/bar/target/classes
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESSFUL
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 2 seconds
> [INFO] Finished at: Wed Jul 01 19:03:34 EDT 2009
> [INFO] Final Memory: 7M/79M
> [INFO]
> ------------------------------------------------------------------------
> 
> Obviously there's something I'm not understanding about how Maven
> executes the java task. Is there something simple that I'm doing
> wrong? Is there an alternative way to accomplish this task that I
> should try (perhaps a more "Maven-native" way)?
> 
> The full pom.xml is attached.
> 
> Regards,
> Chris
> 
> <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>foo</groupId>
>   <artifactId>bar</artifactId>
>   <packaging>jar</packaging>
>   <version>1.0-SNAPSHOT</version>
>   <name>bar</name>
>   <url>http://maven.apache.org</url>
>   <dependencies>
>     <dependency>
>       <groupId>junit</groupId>
>       <artifactId>junit</artifactId>
>       <version>3.8.1</version>
>       <scope>test</scope>
>     </dependency>
>     <dependency>
>       <groupId>xtc</groupId>
>       <artifactId>xtc</artifactId>
>       <version>1.14.2</version>
>       <scope>system</scope>
>       <systemPath>${basedir}/lib/xtc.jar</systemPath>
>     </dependency>
>   </dependencies>
>   <build>
>     <plugins>
>       <!--  Run Rats! on some files -->
>       <plugin>
>         <artifactId>maven-antrun-plugin</artifactId>
>         <executions>
>           <execution>
>             <phase>generate-sources</phase>
>             <configuration>
>               <tasks>
>                 <mkdir
> dir="${project.build.directory}/generated-sources/main/java/" />
>                 <java classpath="lib/xtc.jar" classname="xtc.parser.Rats">
>                   <arg line="-in ${project.build.sourceDirectory}" />
>                   <arg line="-out
> ${project.build.directory}/generated-sources/main/java/" />
>                   <arg path="${project.build.sourceDirectory}/Dot.rats" />
>                 </java>
>                 <!-- <echo
> file="${project.build.directory}/generated-sources/main/java/Dot.java">
> -->
>                 <!--   public class Dot { } -->
>                 <!-- </echo> -->
>               </tasks>
>               <sourceRoot>
>                 ${project.build.directory}/generated-sources/main/java
>               </sourceRoot>
>             </configuration>            
>             <goals> 
>               <goal>run</goal> 
>             </goals> 
>           </execution>
>         </executions> 
>       </plugin> 
>     </plugins> 
>   </build> 
> </project>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 

-- 
View this message in context: 
http://www.nabble.com/maven-antrun-plugin%3A-Java-classes-don%27t-compile-after-an-Ant-task-tp24300991p24314823.html
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to