我想構建一個啓動Java進程(基於Spring)的JUnit集成測試,然後調用該進程。從我的Java測試儀內主:我如何從Java內部運行mvn exec:java
如果我把這個命令行我會在我的POM目錄調用命令行 mvn exec:java -DmainClass=myClass -Dblahblah
啓動Java進程
有沒有辦法來調用EXEC類,以便我的測試人員可以針對進程執行調用並驗證結果?
我想構建一個啓動Java進程(基於Spring)的JUnit集成測試,然後調用該進程。從我的Java測試儀內主:我如何從Java內部運行mvn exec:java
如果我把這個命令行我會在我的POM目錄調用命令行 mvn exec:java -DmainClass=myClass -Dblahblah
啓動Java進程
有沒有辦法來調用EXEC類,以便我的測試人員可以針對進程執行調用並驗證結果?
您可以使用maven-invoker
這裏是你所需要的
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile(new File("/path/to/pom.xml"));
request.setGoals(Collections.singletonList("exec:java -DmainClass=com.vgrazi.MyClass -Dparam1=value1"));
Invoker invoker = new DefaultInvoker();
invoker.execute(request);
謝謝。有沒有辦法發送-D參數? –
嘗試使用http://maven.apache.org/shared-archives/maven-invoker-2.1.1/apidocs/org/apache/maven/shared/invoker/DefaultInvocationRequest.html#addShellEnvironment%28java.lang.String,% 20java.lang.String%29 –
其實我只是在字符串的末尾添加了我的-D參數,它工作正常。換句話說,「exec:java -Dblahblah -Dblahmore」。謝謝! –
的代碼將是類似下面的東西:
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile(new File("/path/to/pom.xml"));
request.setGoals(Collections.singletonList("install"));
Invoker invoker = new DefaultInvoker();
invoker.execute(request);
可能的[如何從java運行maven?](http:// stackoverfl ow.com/questions/5141788/how-to-run-maven-from-java) – FrobberOfBits