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]

Reply via email to