Not obviously to me. fork defaults to false in ant 1.7.1, so I would have expected the same.
On Fri, Jul 3, 2009 at 12:49 PM, clconway<[email protected]> wrote: > > You are right. fork="true" in the Ant java task works too. But this was not > necessary in the original Ant build script. Is there an explanation in the > documentation of why antrun behaves differently? > > -Chris > > > > bimargulies wrote: >> >> A simple fork=yes would have done the job. >> >> On Fri, Jul 3, 2009 at 12:01 PM, clconway<[email protected]> wrote: >>> >>> The problem seems to be that Rats! calls System.exit() (or similar), >>> terminating the JVM. I would have thought that Ant would wrap this (the >>> java >>> task is copied over from a build.xml and it doesn't terminate the Ant >>> build), but the following works by forcing the Rats! process into a >>> separate >>> JVM: >>> >>> <plugin> >>> <groupId>org.codehaus.mojo</groupId> >>> <artifactId>exec-maven-plugin</artifactId> >>> <version>1.1</version> >>> <executions> >>> <execution> >>> <phase>generate-sources</phase> >>> <goals> >>> <goal>exec</goal> >>> </goals> >>> </execution> >>> </executions> >>> <configuration> >>> <executable>java</executable> >>> <arguments> >>> <argument>-classpath</argument> >>> <argument>${basedir}/lib/xtc.jar</argument> >>> <argument>xtc.parser.Rats</argument> >>> <argument>-in</argument> >>> <argument>${project.build.sourceDirectory}</argument> >>> <argument>-out</argument> >>> >>> <argument>${project.build.directory}/generated-sources/main/java/</argument> >>> <argument>${project.build.sourceDirectory}/Dot.rats</argument> >>> </arguments> >>> </configuration> >>> </plugin> >>> >>> -Chris >>> >>> >>> clconway wrote: >>>> >>>> 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-tp24300991p24325361.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] >>> >>> >> >> --------------------------------------------------------------------- >> 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-tp24300991p24325869.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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
