我已经编写了Maven插件的一部分,但它不能再作为插件运行。它可以访问SCM或任何pom.xml,只需要一个工件库和一些Maven坐标。它意味着采用Maven坐标并打印出它们的依赖关系(对它们执行一些报告)。要做到这一点,需要以编程方式访问(例如):
你注入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
但缺少一些东西。救命啊!
答案 0 :(得分:2)
看看它是如何完成的https://github.com/jenkinsci/lib-jenkins-maven-embedder(我们在jenkins中用于类似目的)