Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven Javadoc 'Cannot find default setter' and fails

I'm trying to generate javadocs for a maven project, and I'm running into an error every time.
Unable to parse configuration of mojo org.apache.maven.plugins:maven-javadoc-plugin:2.10.3:javadoc for parameter #: Cannot find default setter in class org.apache.maven.plugin.javadoc.options.Group. The command I'm using is mvn javadoc:javadoc from the root directory, where the pom is.

I don't have Groups configured at all, or have any special configuration at all. I get the same error whether I omit the plugin in my pom completely, add it to reporting, or add as a build plugin. I've tried adding empty groups as well, and while the message changes somewhat, it still appears.

I ran across this SO question, but a. I don't have TestNG dependencies, b. I'm not using command line parameters, and c. it was never resolved.

It IS a Selenium project, so I suppose there could be something similar, but I can't figure it out. Any ideas? I've included the maven debug stack trace below.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.3:javadoc (default-cli) on project Selenium: Unable to parse configuration of mojo org.apache.maven.plugins:maven-javadoc-plugin:2.10.3:javadoc for parameter #: Cannot find default setter in class org.apache.maven.plugin.javadoc.options.Group -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.3:javadoc (default-cli) on project Selenium: Unable to parse configuration of mojo org.apache.maven.plugins:maven-javadoc-plugin:2.10.3:javadoc for parameter #: Cannot find default setter in class org.apache.maven.plugin.javadoc.options.Group
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:220)
    ...
Caused by: org.apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo org.apache.maven.plugins:maven-javadoc-plugin:2.10.3:javadoc for parameter #: Cannot find default setter in class org.apache.maven.plugin.javadoc.options.Group
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:605)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:537)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:119)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 19 more
Caused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: Cannot find default setter in class org.apache.maven.plugin.javadoc.options.Group
    at org.eclipse.sisu.plexus.CompositeBeanHelper.setDefault(CompositeBeanHelper.java:95)
    at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration(ObjectWithFieldsConverter.java:61)
    at org.codehaus.plexus.component.configurator.converters.composite.AbstractCollectionConverter.fromChildren(AbstractCollectionConverter.java:54)
    at org.codehaus.plexus.component.configurator.converters.composite.ArrayConverter.fromConfiguration(ArrayConverter.java:57)
    at org.eclipse.sisu.plexus.CompositeBeanHelper.convertProperty(CompositeBeanHelper.java:273)
    at org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty(CompositeBeanHelper.java:210)
    at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:101)
    at org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:32)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:575)
    ... 22 more
like image 285
Clay H Avatar asked Oct 30 '25 15:10

Clay H


1 Answers

That error message indicates that the configurator can't turn a string into an instance. Instead of doing something like

<groups>
  <group>com.example</group>
  ...
</groups>

try reworking your groups to look like the usage example:

<groups>
  <group>
    <title>Core Packages</title>
    <!-- To includes java.lang, java.lang.ref,
    java.lang.reflect and only java.util
    (i.e. not java.util.jar) -->
    <packages>java.lang*:java.util</packages>
  </group>
  <group>
    <title>Extension Packages</title>
     <!-- To include javax.accessibility,
    javax.crypto, ... (among others) -->
    <packages>javax.*</packages>
  </group>
</groups>
like image 185
Mike Samuel Avatar answered Nov 01 '25 13:11

Mike Samuel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!