Maven プラグインの一部を作成しましたが、プラグインとして実行できなくなりました。SCM、または任意の pom.xml にアクセスでき、アーティファクト リポジトリといくつかの Maven 座標のみが含まれます。これは、Maven の座標を取得し、その依存関係を出力することを目的としています (それらに関するレポートを実行します)。これを行うには、(たとえば) プログラムによるアクセスが必要です。
- MavenProjectBuilder
- DependencyGraphBuilder
mojo に挿入する通常のものですが、これは mojo ではなく、そのままでは実行できません (pom.xml がないため)。
私が持っているコードは役に立ちませんでした。たとえば、AbstractMojoTestCase には、私が持っていない pom.xml が必要です。
私はいくつかのコードが欲しい..
DefaultPlexusContainer container = new DefaultPlexusContainer();
Context context = container.getContext();
context.put("plexus", new DefaultPlexusContainer());
container.initialize();
container.start();
MavenProjectBuilder mavenProjectBuilder = (MavenProjectBuilder) container.lookup(MavenProjectBuilder.ROLE);
DependencyGraphBuilder dependencyGraphBuilder = (DependencyGraphBuilder) container.lookup(DependencyGraphBuilder.class.getName());
MavenProject project = mavenProjectBuilder.buildFromRepository(artifact, remoteArtifactRepositories, localRepository);
// do stuff with dependencies
しかし、何かが足りない。ヘルプ!