Your class MUST have an empty constructor !!! Regards Jeff MAURY
On Wed, Aug 18, 2010 at 3:21 PM, onlinegeek <[email protected]> wrote: > > I am trying to pass an object through my pom to my maven mojo. > I have a class... > > public class Shortcut { > > /** > * @parameter expression="${project}" > */ > private String name; > private String description; > private String commandLine; > > public Shortcut(String Name) > { > setName(Name); > //setDescription(Description); > //setCommandLine(CommandLine); > } > > public void setName(String name) { > this.name = name; > } > > public String getName() { > return name; > } > > public void setDescription(String description) { > this.description = description; > } > > public String getDescription() { > return description; > } > > public void setCommandLine(String commandLine) { > this.commandLine = commandLine; > } > > public String getCommandLine() { > return commandLine; > } > > } > > and i declare the variable > /** > * Shortcuts to add to XML > * @parameter > */ > private Shortcut shortcut; > > and in my pom i declare this in the <configuration> tag > <shortcut> > <name>TESTING</name> > <description>TESTING</description> > <commandLine>TESTING</commandLine> > </shortcut> > I keep getting this error > [ERROR] Failed to execute goal SOME.PACKAGE (default-cli) on project test: > Unable to parse configuration of mojo SOME.PACKAGE for parameter shortcut: > Class 'SOME.PACKAGE.Shortcut' cannot be instantiated -> [Help 1] > org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute > goal SOME.PACKAGE (default-cli) on project test: Unable to parse > configuration of mojo SOME.PACKAGE for parameter shortcut: Class > 'SOME.PACKAGE.Shortcut' cannot be instantiated > at > > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:589) > at > > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104) > at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427) > at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:121) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) > at > > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) > at > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) > Caused by: org.apache.maven.plugin.PluginConfigurationException: Unable to > parse configuration of mojo SOME.PACKAGE for parameter shortcut: Class > 'SOME.PACKAGE.Shortcut' cannot be instantiated > at > > org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:643) > at > > org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:595) > at > > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:94) > at > > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:577) > ... 14 more > Caused by: > org.codehaus.plexus.component.configurator.ComponentConfigurationException: > Class 'SOME.PACKAGE.Shortcut' cannot be instantiated > at > > org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter.instantiateObject(AbstractConfigurationConverter.java:133) > at > > org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration(ObjectWithFieldsConverter.java:90) > at > > org.codehaus.plexus.component.configurator.converters.ComponentValueSetter.configure(ComponentValueSetter.java:260) > at > > org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:145) > at > > org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:58) > at > > org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:630) > ... 17 more > Caused by: java.lang.InstantiationException: SOME.PACKAGE.Shortcut > at java.lang.Class.newInstance0(Class.java:340) > at java.lang.Class.newInstance(Class.java:308) > at > > org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter.instantiateObject(AbstractConfigurationConverter.java:123) > ... 22 more > > Could someone give me an example or explain to me why this isnt working. > For an example > a sample simple custom class and the corresponding pom and variable > declarations would be great. > Thanks in advance > -TJ > > -- > View this message in context: > http://maven.40175.n5.nabble.com/Mojo-Complex-Object-From-Pom-tp2639350p2639350.html > Sent from the Maven Developers mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > -- "Legacy code" often differs from its suggested alternative by actually working and scaling. - Bjarne Stroustrup http://www.jeffmaury.com http://riadiscuss.jeffmaury.com http://www.twitter.com/jeffmaury
