带继承的maven插件生成失败

带继承的maven插件生成失败,maven,dependencies,maven-plugin,Maven,Dependencies,Maven Plugin,我已经编写了一个Maven插件抽象器,名为Maven base plugin。该插件覆盖所有类和资源,并执行某些任务。由于它是一个抽象插件,因此该插件的包装没有设置为maven-plugin,而是设置为“jar” 我还有另一个插件,tools reporter,它使用上面的插件API为我的项目创建报告。同样,报告和报告目的地都是接口,因此将来可以对它们进行扩展。同样,这个项目有一个“jar”的包装 现在,我有了第三个插件,这取决于reporter插件生成用于工件和资源的特定报告。此插件的包装设置

我已经编写了一个Maven插件抽象器,名为Maven base plugin。该插件覆盖所有类和资源,并执行某些任务。由于它是一个抽象插件,因此该插件的包装没有设置为
maven-plugin
,而是设置为“jar”

我还有另一个插件,
tools reporter
,它使用上面的插件API为我的项目创建报告。同样,报告和报告目的地都是接口,因此将来可以对它们进行扩展。同样,这个项目有一个“jar”的包装

现在,我有了第三个插件,这取决于reporter插件生成用于工件和资源的特定报告。此插件的包装设置为“maven plugin”。让我迟钝了一段时间的原因是,我无法成功构建第三个插件,而各种检查都没有解决这个问题

当我这样做时,我得到:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-plugin-plugin:2.3:descriptor (default-descriptor) on project tools-reporter-sample: Execution default-descriptor of goal org.apache.maven.plugins:maven-plugin-plugin:2.3:descriptor failed: 0 -> [Help 1]
详情如下:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-plugin-plugin:2.3:descriptor (default-descriptor) on project tools-reporter-sample: Execution default-descriptor of goal org.apache.maven.plugins:maven-plugin-plugin:2.3:descriptor failed: 0
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    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)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
    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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-descriptor of goal org.apache.maven.plugins:maven-plugin-plugin:2.3:descriptor failed: 0
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 25 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at org.apache.maven.tools.plugin.extractor.java.JavaMojoDescriptorExtractor.getJavaClass(JavaMojoDescriptorExtractor.java:534)
    at org.apache.maven.tools.plugin.extractor.java.JavaMojoDescriptorExtractor.execute(JavaMojoDescriptorExtractor.java:553)
    at org.apache.maven.tools.plugin.scanner.DefaultMojoScanner.populatePluginDescriptor(DefaultMojoScanner.java:84)
    at org.apache.maven.plugin.plugin.AbstractGeneratorMojo.execute(AbstractGeneratorMojo.java:135)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    ... 26 more
任何帮助或见解都将不胜感激

顺便说一句,我尝试了将包装设置为不同值的各种组合。唯一有效的方法是宣布第三个插件,
tools reporter sample
作为一个简单的“jar”,这有点适得其反,因为它消除了本练习的全部目的

以下是违规代码的要点:

以下是对每一项的说明:

  • :原始基本插件,捆绑为jar,由基本报告插件使用
  • :基本maven插件的
    pom.xml
    文件
  • :负责所有报告功能的抽象类
  • :基本报告插件的
    pom.xml
    文件
  • :实际应该运行的示例插件
  • :示例报告插件的
    pom.xml
    文件

事实证明,失败根本不是由于插件的分层设计。但奇怪的是,让插件在其类路径中包含一个注释就成功了。我有一个类,
@interface-Sample{
。一旦我删除了它,一切都解决了


我还没有弄清楚原因。

我的水晶球目前正在维护中。没有代码很难猜测…问题是,代码相当大。我应该如何包含它?使用github或类似的工具?可能,代码已经在我们公司的SVN中。我可能能够分离一个子集并上传它