我已经编写了 Maven 插件的一部分,但它不能再作为插件运行。它可以访问 SCM 或任何 pom.xml,只是一个工件存储库和一些 Maven 坐标。它旨在获取 Maven 坐标并打印出它们的依赖关系(对它们进行一些报告)。为此,它需要以编程方式访问(例如):
- MavenProjectBuilder
- 依赖关系图构建器
您注入到 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
但是有些东西不见了。帮助!