Я пытаюсь создать Java код, который создает настроенный процессор nifi! так что для этого мне нужно использовать windows cmd windows и запустить mvn archetype:generate
, затем выбрать модель nifi, набрав nifi
, затем выбрать проект, набрав 1
, мне нужно написать groupeId, артефакт ...
I нужно сделать все это автоматически с помощью java кода: я попробовал этот код:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class CmdTest {
public static void main(String[]args) throws IOException {
String line;
OutputStream stdin = null;
InputStream stderr = null;
InputStream stdout = null;
// launch EXE and grab stdin/stdout and stderr
ProcessBuilder builder = new ProcessBuilder(
"cmd.exe", "/c", "cd \"C:\\users\\eya\\desktop\\javaprocessor\" && mvn archetype:generate");
builder.redirectErrorStream(true);
Process process = builder.start();
stdin = process.getOutputStream ();
stderr = process.getErrorStream ();
stdout = process.getInputStream ();
// "write" the parms into stdin
line = "nifi" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "1" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "33" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "javaproceSSor" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "javaprocessor" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "javapro" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "y" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
stdin.close();
// clean up if any output in stdout
BufferedReader brCleanUp =
new BufferedReader (new InputStreamReader (stdout));
while ((line = brCleanUp.readLine ()) != null) {
System.out.println ("[Stdout] " + line);
}
brCleanUp.close();
// clean up if any output in stderr
brCleanUp =
new BufferedReader (new InputStreamReader (stderr));
while ((line = brCleanUp.readLine ()) != null) {
System.out.println ("[Stderr] " + line);
}
brCleanUp.close();
}
}
, но он только читал "nifi", другие нет! и вот результат:
[Stdout] 2679: remote -> us.fatehi:schemacrawler-archetype-plugin-command (-)
[Stdout] 2680: remote -> us.fatehi:schemacrawler-archetype-plugin-dbconnector (-)
[Stdout] 2681: remote -> us.fatehi:schemacrawler-archetype-plugin-lint (-)
[Stdout] 2682: remote -> ws.osiris:osiris-archetype (Maven Archetype for Osiris)
[Stdout] 2683: remote -> xyz.luan.generator:xyz-gae-generator (-)
[Stdout] 2684: remote -> xyz.luan.generator:xyz-generator (-)
[Stdout] 2685: remote -> za.co.absa.hyperdrive:component-archetype (-)
[Stdout] Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1589: Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
[Stdout] 1: 1.0-alpha-1
[Stdout] 2: 1.0-alpha-2
[Stdout] 3: 1.0-alpha-3
[Stdout] 4: 1.0-alpha-4
[Stdout] 5: 1.0
[Stdout] 6: 1.1
[Stdout] 7: 1.3
[Stdout] 8: 1.4
[Stdout] Choose a number: 8: Define value for property 'groupId': [INFO] ------------------------------------------------------------------------
[Stdout] [INFO] BUILD FAILURE
[Stdout] [INFO] ------------------------------------------------------------------------
[Stdout] [INFO] Total time: 12.592 s
[Stdout] [INFO] Finished at: 2020-04-12T21:13:20+01:00
[Stdout] [INFO] ------------------------------------------------------------------------
[Stdout] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate (default-cli) on project standalone-pom: null: MojoFailureException: NullPointerException -> [Help 1]
[Stdout] [ERROR]
[Stdout] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[Stdout] [ERROR] Re-run Maven using the -X switch to enable full debug logging.
[Stdout] [ERROR]
[Stdout] [ERROR] For more information about the errors and possible solutions, please read the following articles:
[Stdout] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
если есть какой-либо способ автоматически генерировать проекты mvn, тогда вы всегда можете помочь
РЕДАКТИРОВАТЬ: я пробовал это решение но я не знал как его настроить