maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lee Meador <leemeador76...@gmail.com>
Subject Re: [m2] Generating Source in Ant
Date Thu, 17 Nov 2005 20:20:55 GMT
Never mind. But I do have a question down there ...

Although I had fun poking around into maven2 and creating a plugin of my own
that would compile, load and run (even though it did die with a NPE), two
things:

1) It took me a while to find and load the plugin sources. I found no
reference in the docs. The page that tells how to build the source does not
load the plugin source from subversion. Its at:

http://maven.apache.org/guides/development/guide-building-m2.html

I don't really know how it should be documented. I've only been looking at
this since yesterday. Maybe a sibling page that tells how to download source
and build/install/etc the plugin source.

The command to load the plugin source is:

svn co https://svn.apache.org/repos/asf/maven/plugins/trunk maven-plugins

All the plugins will get put under the 'maven-plugins' folder.

2) The antrun plugin has what I need already. I found that out when I looked
at the AntRunMojo.java file.

For what I am working on, I need to run Ant to generate my Websphere
6.0java from a wsdl. Then I need the generated code to be compiled.
The default
case doesn't find the generated code. (I don't know why I thought it would
but maven seems to read minds sometimes.)

I have the ant build put the code it creates in
target/generated-sources/java.

Then I just use the <sourceRoot> tag (or <testSourceRoot> for test code) to
tell maven2 to compile the stuff in the folder that I put in there. I don't
know if you can put more than one relative path in there. I doubt it but
don't understand the implications of what's in the java source very well.

This is the plugin tag from my POM.

<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<ant antfile="build.xml" dir="." target="wasWsdl2Java" inheritRefs="true" />
</tasks>
<sourceRoot>/target/generated-sources/java</sourceRoot>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>


Question: Is there a way to parameterize the folder in that tag so that I
don't put "target" but put something that will use whatever the build
directory should be?

Thanks.

-- Lee Meador

On 11/17/05, Lee Meador <leemeador76018@gmail.com> wrote:
>
> I have this source:
>
> /**
> * Goal which runs ant and then adds some path to the compile source root
> list
> *
> * @goal run
> * @phase generate-sources
> * @description Run ant and then add a folder to the list of places that
> hold
> * code to compile
> */
> public class AntRunAddGenerateMojo extends AntRunMojo {
>
> /**
> * The Maven project.
> *
> * @parameter expression="${project}"
> * @required
> * @readonly
> */
> private MavenProject project;
>
> /**
> * Where the source files were put by the ant task
> *
> * @parameter expression="${project.build.directory
> }/generated-sources/java"
> * @required
> */
> private String compileSourceRoot;
>
> public void execute() throws MojoExecutionException {
> getLog().info("enter execute()");
> super.execute();
> getLog().info("add compileSourceRoot: " + compileSourceRoot);
> project.addCompileSourceRoot(compileSourceRoot);
> getLog().info("exit execute()");
> }
> }
>
> And I get this error:
>
> [INFO] task-segment: [compile]
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] [ant-generate:run {execution: default}]
> [INFO] enter execute()
> [INFO]
> ----------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Error executing ant tasks
>
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Trace
> org.apache.maven.lifecycle.LifecycleExecutionException: Error executing
> ant tasks
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
> DefaultLifecycleExecutor.java:544)
> at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle
> (DefaultLifecycleExecutor.java:469)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
> DefaultLifecycleExecutor.java:448)
> at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures
> (DefaultLifecycleExecutor.java:301)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments
> (DefaultLifecycleExecutor.java:268)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
> DefaultLifecycleExecutor.java:137)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:316)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:113)
> at org.apache.maven.cli.MavenCli.main(MavenCli.java:249)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
> at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
> at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
> at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>
> at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by: org.apache.maven.plugin.MojoExecutionException: Error executing
> ant tasks
> at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(
> AbstractAntMojo.java:77)
> at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:72)
>
> at com.aa.inflightsales.maven.AntRunAddGenerateMojo.execute(
> AntRunAddGenerateMojo.java:52)
> at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
> DefaultPluginManager.java:399)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
> DefaultLifecycleExecutor.java:519)
> ... 16 more
> Caused by: java.lang.NullPointerException
> at org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(
> AbstractAntMojo.java:42)
> ... 20 more
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Total time: 3 seconds
> [INFO] Finished at: Thu Nov 17 12:36:57 CST 2005
> [INFO] Final Memory: 4M/8M
> [INFO]
> ----------------------------------------------------------------------------
>
> I have no idea how to start looking at this. Do you have any strategies
> for me?
>
> Thanks.
>
> -- Lee Meador
>
> On 11/16/05, Brett Porter <brett.porter@gmail.com> wrote:
> >
> > I'd recommend writing the plugin in Java and calling the Ant task
> > using the Java API, then add the source root. This would help to
> > encapsulate the functionality.
> >
> > - Brett
> >
> > On 11/17/05, Lee Meador < Lee.Meador@aa.com> wrote:
> > > I've scanned the last couple of weeks' messages and I think I see what
> > > is happening.
> > >
> > > I have an ant task that generates java from a wsdl using Websphere 6.0's
> >
> > > ant tasks to do so. It's similar to the Axis ones.
> > >
> > > I have it generate the java into target/generated-sources/java.
> > >
> > > The generated code doesn't get compiled when I do a
> > >
> > > mvn compile
> > >
> > > I think the problem is that generated-sources doesn't get added to the
> > > compileSourceRoots since they are being generated in ant.
> > >
> > > So ... can I run some useless plugin with no input and get the
> > > generated-sources added to the list of roots? Is there some other way
> > to
> > > get it to look there?
> > >
> > > Thanks.
> > >
> > > -- Lee Meador
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> >
> >
>
>
> --
> -- Lee Meador
> Sent from gmail. My real email address is lee@leemeador.com




--
-- Lee Meador
Sent from gmail. My real email address is lee@leemeador.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message