Maven 3プラグインを開発していますが、プラグインで構成が設定されている場合、いくつかの依存関係とそれらの推移的な依存関係を除外したいと思いtrue
ます。
<exclusions>
プロファイルであっても、POM自体では使用したくありません。これらの依存関係をプログラムで除外したいと思います。実際、私が望んでいるのは、プラグイン構成がに設定されているときに、依存関係のjarファイルが最終的な戦争(私は戦争を構築している)に含まれないようにすることですtrue
。
私は試した :
@Mojo(requiresDependencyResolution=ResolutionScope.COMPILE, name="compileHook",defaultPhase=LifecyclePhase.COMPILE)
public class compileHook extends AbstractMojo
{
@Override
public void execute() throws MojoExecutionException, MojoFailureException
{
// ...
Set<Artifact> artifacts = this.project.getArtifacts();
for(Artifact artifact : artifacts)
{
if("org.package.to.remove".equalsIgnoreCase(artifact.getGroupId()))
{
artifact.setScope("provided");
}
}
// ...
}
}
これはcompile
フェーズで発生するため、グループIDが「org.package.to.remove」のアーティファクトは、パッケージ化されたときにjarが戦争に含まれることから実際に削除されます。しかし、これはそれらの依存関係が追加する推移的なアーティファクトを削除しません!
いくつかの依存関係とそれらの推移的な依存関係を、最終的な.jar / .warに含まれないようにプログラムで削除するための最良の方法は何ですか?