複数のMojosを持つmaven-pluginを開発しています。私の目標は、私のプロジェクトにアーティファクトを追加することです。 attach-artifact of maven-build-helper-pluginに似ています。しかし、私は、任意のビルドプラグインを使用したくない、私は私のモジョを通してそれをしたい。MavenのmojoでのMavenBuildHelperの使用方法
私はMavenProjectHelper.attachArtifactを使用する必要があることを知っています。 MavenProject.attachArtifactは推奨されなくなりました。
私が今持っていることは、これは(mojo.javaに)ある:
@Parameter(defaultValue = "${project}", required = true, readonly = true)
private MavenProject project;
@Parameter(defaultValue = "${helper}", required = true, readonly = true)
protected MavenProjectHelper projectHelper;
そしてexecute
方法で:
projectHelper.attachArtifact(project, "plugin", file);
しかし、問題はMavenProjectHelper
のデフォルト値は${helper}
ではない、あります。そのため、次のエラーが表示されます。
Failed to execute goal com.company.product.repo:my-plugin:1.0.1:attach-artifact (default) on project consumer-plugin: The parameters 'projectHelper' for goal com.company.product.repo:my-plugin:1.0.1:attach-artifact are missing or invalid -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginParameterException
どのように正しい値を設定しますか? の${session}
と同様に、私はMavenProjectHelper
にデフォルト値があると仮定しました。もしそうなら、それは何ですか?そうでない場合、MavenProjectHelper
パラメータに正しい値を与えるにはどうすればよいですか?
ありがとうございます!出来た。私が 'role'の価値を手作業で与えなければならない場合、それは何であり、どこでそれを見つけることができますか?たとえば、 'MavenResourcesFiltering'では、' role = org.apache.maven.shared.filtering.MavenResourcesFiltering.class'を使用しています。 –
@ChurchillNolanロールは、注釈付きタイプのクラスにデフォルト設定されています。たとえば、型がコンポーネントのクラスではないフィールドに何かを注入したい場合に必要です。例: 'Archiver'には' JarArchiver'のような複数の実装があります。具体的に 'JarArchiver'を必要とするならば、あなたのフィールドは' JarArchiver'型であるので、 'JarArchiver'は' JarArchiver'のコンポーネントであるため、 'Archiver.class'であることを伝える必要があります。ロールアーカイバ)。典型的には、あなたが注入したいものの種類を区別する必要があるので、あなたは 'ヒント 'と一緒に使います。 – Tunaki