如何以编程方式为Maven创建Plexus容器?
问题描述:
我已经写了一个Maven插件的一部分,但它不能再作为插件运行。它可以访问SCM或任何pom.xml,只是一个工件库和一些Maven坐标。它意味着采用Maven坐标并打印出它们的依赖关系(对它们进行一些报告)。要做到这一点就需要编程访问(例如):如何以编程方式为Maven创建Plexus容器?
- MavenProjectBuilder
- DependencyGraphBuilder
平常的东西,你会注入魔力,但它不是一个魔力而无法运行(因为我没有一个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
但还有一些人失踪。帮帮我!
这听起来像你需要像Maven的调用,插件来创建可用于集成测试一个真正的行家环境? – khmarbaise 2013-02-08 11:40:30