1

私は Maven プラグインを開発しており、Assembly API を使用してカスタム アセンブリの構築を行っています。コードを実行すると、次のスタック トレースが表示されます。

java.lang.NullPointerException: null
    org.apache.maven.plugin.assembly.interpolation.AssemblyInterpolator.buildInterpolator (AssemblyInterpolator.java:177) で
    org.apache.maven.plugin.assembly.interpolation.AssemblyExpressionEvaluator.(AssemblyExpressionEvaluator.java:44) で
    org.apache.maven.plugin.assembly.io.DefaultAssemblyReader.mergeComponentsWithMainAssembly (DefaultAssemblyReader.java:470) で
    org.apache.maven.plugin.assembly.io.DefaultAssemblyReader.readAssembly (DefaultAssemblyReader.java:390) で
    org.apache.maven.plugin.assembly.io.DefaultAssemblyReader.addAssemblyFromDescriptor (DefaultAssemblyReader.java:328) で
    org.apache.maven.plugin.assembly.io.DefaultAssemblyReader.readAssemblies (DefaultAssemblyReader.java:120) で

私が知る限り、これはDefaultAssemblyReaderプラグインのデフォルトの Maven プロジェクトにアクセスできないことが原因です。私のモジョでは、Maven プロジェクトとアセンブリ リーダーを次のように宣言しました。

@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;

projectAssemblyReader クラスには、プロジェクトを設定するためのセッターがありませんdefaultReader。私が考えた 1 つの解決策は、拡張SingleAssemblyMojoしてプロジェクトのセッターを与え、その構成オブジェクトをアセンブリ リーダーに渡すことですが、それは少し面倒に思えます。よりエレガントで適切な方法はありますか?

4

0 に答える 0