有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从Java代码中执行Maven plugin命令

正如标题所示,我想知道是否有一种方法可以从Java代码中执行像这样的maven命令

mvn --dependency:get -Dartifact=groupid.com:artifactId:1.0.0-SNAPSHOT

我可以从命令行运行它,但是当我尝试使用Java ProcessBuilder运行它时,我得到了

Unable to parse command line options: Unrecognized option: --dependency:get

ProcessBuilder似乎找不到maven依赖插件

下面是我的代码片段,请注意mvn --version命令可以工作,但需要插件的命令不能:(

    private static void RunCommand() {
        //String command = "mvn --version";
        String command = "mvn --dependency:get -Dartifact=groupid.com:artifactId:1.0.0-SNAPSHOT";
        try {
            boolean isWindows = System.getProperty("os.name").toLowerCase().startsWith("windows");
            ProcessBuilder builder = new ProcessBuilder();
            builder.redirectErrorStream(true);  
            if (isWindows) {
                builder.command("cmd.exe", "/c", command);
            } else {
                builder.command("sh", "-c", command);
            }
            Process process = builder.start();
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            int exitCode = process.waitFor();
            System.out.println("\nExited with error code : " + exitCode);
        } catch (Exception e) {
            e.printStackTrace();
        }       
    }

有没有告诉ProcessBuilder在哪里可以找到maven插件


共 (1) 个答案

  1. # 1 楼答案

    应该是的

    mvn dependency:get

    reference