Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将默认Maven项目注入其他Maven组件_Java_Maven_Maven Plugin_Maven Mojo - Fatal编程技术网

Java 将默认Maven项目注入其他Maven组件

Java 将默认Maven项目注入其他Maven组件,java,maven,maven-plugin,maven-mojo,Java,Maven,Maven Plugin,Maven Mojo,我正在开发一个Maven插件,并利用汇编API进行一些自定义汇编构建。当我的代码运行时,我得到以下堆栈跟踪: java.lang.NullPointerException: null at org.apache.maven.plugin.assembly.interpolation.AssemblyInterpolator.buildInterpolator(AssemblyInterpolator.java:177) at org.apache.maven.plugin.ass

我正在开发一个Maven插件,并利用汇编API进行一些自定义汇编构建。当我的代码运行时,我得到以下堆栈跟踪:

java.lang.NullPointerException: null at org.apache.maven.plugin.assembly.interpolation.AssemblyInterpolator.buildInterpolator(AssemblyInterpolator.java:177) at org.apache.maven.plugin.assembly.interpolation.AssemblyExpressionEvaluator.(AssemblyExpressionEvaluator.java:44) at org.apache.maven.plugin.assembly.io.DefaultAssemblyReader.mergeComponentsWithMainAssembly(DefaultAssemblyReader.java:470) at org.apache.maven.plugin.assembly.io.DefaultAssemblyReader.readAssembly(DefaultAssemblyReader.java:390) at org.apache.maven.plugin.assembly.io.DefaultAssemblyReader.addAssemblyFromDescriptor(DefaultAssemblyReader.java:328) at org.apache.maven.plugin.assembly.io.DefaultAssemblyReader.readAssemblies(DefaultAssemblyReader.java:120) AssemblyReader类没有任何setter在其上设置项目,我不确定如何将项目注入defaultReader。我想到的一个解决方案是扩展SingleAssemblyMojo并为其提供一个项目的setter,然后将该配置对象传递给AssemblyReader,但这似乎有点困难。有没有更优雅/合适的方法?

您不应该使用@Requirement而不是@Component吗?
@Component (role=org.apache.maven.project.MavenProject.class, hint="default")
protected MavenProject project;

@Component(role=org.apache.maven.plugin.assembly.io.AssemblyReader.class, hint="default")
protected AssemblyReader defaultReader;