Re: Trying to extend AbstractAssemblyMojo

2010-05-24 Thread Stephen Connolly
the maven-plugin-plugin processes javadoc annotations to derive the plugin
metadata.

when you extend a maven-plugin artifact, the maven-plugin-plugin cannot see
the javadoc annotations of the parent mojo classes (because they are javadoc
annotations and it only has access to the .class files)

As a result it is not possible to extend a maven plugin... which leads to
the pattern whereby you have a jar artifact for doing the heavy lifting and
a skinny maven-plugin artifact to bind the jar to maven [oh look that's
actually best practice as now you are not tied to using maven as a build
tool, you can easily write a skinny ANT task wrapper to switch to ANT, etc]

You could avoid using maven-plugin-plugin and write the plugin metadata
yourself, or you could develop a patch to m-p-p to merge metadata (i'll
apply the patch for you if you can develop such... promise ;-) )

Of couse when we eventually switch to using java 5 annotations the issue
will be gone as those annotations can have a rentention into the .class
files

-Stephen

On 24 May 2010 22:12, Michael Delaney  wrote:

> All,
>
> I'm trying to write a custom packing plugin that uses the Maven assembly
> descriptors but I'm running into some issues with my class. Just trying to
> proof out my concepts, I copied the class DirectoryMojo and changed the
> package name, added it to my Maven plugin and built the plugin; the plugin
> compiled with no issues.
>
> I then took a simple app with an assembly descriptor and tried to use my
> new packing plugin but I'm getting a null exception during the phase where
> it builds. Can anyone point me to in the right direction?
>
> -- POM configuration in helloWorld app.
> 
> org.example.plugin
> custom-packaging-plugin
> 1.0.0-SNAPSHOT
> 
> 
> ${basedir}/src/main/assembly/custom.xml
> 
> 
> 
>
> -- helloWorld build error
> [INFO] [sample-project:custom-assembly {execution: default-cli}]
> [INFO] Creating custom artifact now...
> [INFO]
> 
> [ERROR] FATAL ERROR
> [INFO]
> 
> [INFO] null
> [INFO]
> 
> [INFO] Trace
> java.lang.NullPointerException
>at
> org.apache.maven.plugin.assembly.mojos.AbstractDirectoryMojo.execute(AbstractDirectoryMojo.java:49)
>at
> org.apache.maven.plugin.assembly.mojos.CustomAssemblyMojo.execute(CustomAssemblyMojo.java:40)
>at
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
>at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
>at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
>at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
>at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
>at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284)
>at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
>at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
>at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
>at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
>at
> org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>at java.lang.reflect.Method.invoke(Unknown Source)
>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)
> [INFO]
> 
> [INFO] Total time: 19 seconds
> [INFO] Finished at: Mon May 24 16:53:57 EDT 2010
> [INFO] Final Memory: 44M/127M
> [INFO]
> 
>
>
>
>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>


Trying to extend AbstractAssemblyMojo

2010-05-24 Thread Michael Delaney

All,

I'm trying to write a custom packing plugin that uses the Maven assembly 
descriptors but I'm running into some issues with my class. Just trying 
to proof out my concepts, I copied the class DirectoryMojo and changed 
the package name, added it to my Maven plugin and built the plugin; the 
plugin compiled with no issues.


I then took a simple app with an assembly descriptor and tried to use my 
new packing plugin but I'm getting a null exception during the phase 
where it builds. Can anyone point me to in the right direction?


-- POM configuration in helloWorld app.

org.example.plugin
custom-packaging-plugin
1.0.0-SNAPSHOT


${basedir}/src/main/assembly/custom.xml




-- helloWorld build error
[INFO] [sample-project:custom-assembly {execution: default-cli}]
[INFO] Creating custom artifact now...
[INFO] 


[ERROR] FATAL ERROR
[INFO] 


[INFO] null
[INFO] 


[INFO] Trace
java.lang.NullPointerException
at 
org.apache.maven.plugin.assembly.mojos.AbstractDirectoryMojo.execute(AbstractDirectoryMojo.java:49)
at 
org.apache.maven.plugin.assembly.mojos.CustomAssemblyMojo.execute(CustomAssemblyMojo.java:40)
at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at 
org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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)
[INFO] 


[INFO] Total time: 19 seconds
[INFO] Finished at: Mon May 24 16:53:57 EDT 2010
[INFO] Final Memory: 44M/127M
[INFO] 







-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org