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