2013-02-08 37 views
1

我已經寫了一個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 

但還有一些人失蹤。幫幫我!

+0

這聽起來像你需要像Maven的調用,插件來創建可用於集成測試一個真正的行家環境? – khmarbaise 2013-02-08 11:40:30

回答