1

我已经编写了 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

但是有些东西不见了。帮助!

4

1 回答 1

2

看看它是如何完成的https://github.com/jenkinsci/lib-jenkins-maven-embedder(我们在 jenkins 中使用它用于类似目的)

于 2013-02-08T13:41:30.360 回答