4

我正在尝试使用 maven 调用程序 API 在交互模式下调用其他 maven 插件,但是交互模式在 InvocationRequest 上没有设置 InputStream 的情况下失败。此时有没有办法检索控制台提示符?

InvocationRequest invocationRequest = new DefaultInvocationRequest();
invocationRequest.setPomFile("/some/pom/file/pom.xml");
// set up goals etc
invocationRequest.setInteractive(true);
// Here I need to add the input stream: eg invocationRequest.setInputStream(???);

Invoker invoker = new DefaultInvoker();
InvocationResult result = invoker.execute(invocationRequest);

没有输入流,调用的目标就无法完成。


编辑[澄清一点]: InvocationRequest 对象上有一个 .setInputStream 方法。如果请求是交互式的,DefaultInvoker 会检查是否已设置此项。

if ( request.isInteractive() ) {
    if ( inputStream == null ) {
        getLogger().warn("Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance.");
        // etc

这表明应该可以将 InputStream 设置为合适的值,但我不确定如何访问它。

4

0 回答 0