gpt4 book ai didi

java - 如何从 java 程序运行 mvn 命令?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:54 29 4
gpt4 key购买 nike

我正在构建一个 Java 程序,用于在我的服务器端自动化一个过程。通常我 cd 到 Desktop/GIT/并使用这个 maven 命令“mvn integration-test -DskipTests -P interactive -e”。

我正在构建一个 Java 程序,我正在尝试运行该命令行,但到目前为止我没有成功。

到目前为止,这是代码:

public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub

Process theProcess = null;


try
{
theProcess = Runtime.getRuntime().exec("mvn integration-test -DskipTests -P interactive -e");
}
catch(IOException e)
{
System.err.println("Error on exec() method");
e.printStackTrace();
}

// read from the called program's standard output stream
try
{
inStream = new BufferedReader(new InputStreamReader( theProcess.getInputStream()));
System.out.println(inStream.readLine());
}
catch(IOException e)
{
System.err.println("Error on inStream.readLine()");
e.printStackTrace();
}

break;

}

}

in.close();
}

最佳答案

你应该看看 maven embedder ;这正是您在嵌入 maven 时应该使用的工具。


显然 maven 嵌入器是 not supported任何更多。也许你仍然可以让它工作,但我宁愿为你创建一个应该工作的小样本。当然,替换Maven的路径:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Q {

public static void main(String[] args) throws IOException, InterruptedException {

Process p = null;

try {
p = Runtime.getRuntime().exec("C:/Applications/apache-maven-3.0.3/bin/mvn.bat integration-test -DskipTests -P interactive -e");
} catch (IOException e) {
System.err.println("Error on exec() method");
e.printStackTrace();
}

copy(p.getInputStream(), System.out);
p.waitFor();

}

static void copy(InputStream in, OutputStream out) throws IOException {
while (true) {
int c = in.read();
if (c == -1)
break;
out.write((char) c);
}
}
}

关于java - 如何从 java 程序运行 mvn 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313971/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com