2014-09-20 63 views
0

我想從Java類調用maven。錯誤調用Maven

我的代碼:

import java.io.File; 
import java.util.Arrays; 

import javax.xml.ws.spi.Invoker; 

import org.apache.maven.shared.invoker.DefaultInvocationRequest; 
import org.apache.maven.shared.invoker.DefaultInvoker; 
import org.apache.maven.shared.invoker.InvocationRequest; 
import org.apache.maven.shared.invoker.MavenInvocationException; 

public class MavenProjectBuilder implements ProjectBuilder{ 

    public void BuildProject(String buildPath, String bugID) { 

     InvocationRequest request = new DefaultInvocationRequest(); 
     request.setPomFile(new File(buildPath)); 
     request.setGoals(Arrays.asList("clean", "install")); 

     DefaultInvoker invoker = new DefaultInvoker(); 

     try { 
      invoker.execute(request); 
     } catch (MavenInvocationException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


    } 

} 

它返回以下錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/util/cli/StreamConsumer 
    at autoEvoSuite.MavenProjectBuilder.BuildProject(MavenProjectBuilder.java:21) 
    at autoEvoSuite.Main.<init>(Main.java:110) 
    at tests.GeneralTest.main(GeneralTest.java:18) 
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.util.cli.StreamConsumer 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 3 more 

我做了一些研究,發現它可能是一個缺失的依賴,但不應該自動Maven的下載所有失蹤那些?

回答

0

請檢查您的POM.xml中是否存在以下依賴項,直到您的pom文件中定義了依賴項,否則jar將不會被下載到本地存儲庫。

<dependency> 
    <groupId>org.codehaus.plexus</groupId> 
    <artifactId>plexus-utils</artifactId> 
    <version>3.0.17</version> 
</dependency> 
+1

我試圖DarioP的代碼用POM封裝項目和它的工作就像沒有這種相關性的魅力 - 移除後'實現ProjectBuilder'因爲我沒有找到在哪裏這是來自。 – 2014-09-20 16:13:37