一、maven-invoker简介
提供了一套用java方法调用来实现maven的命令执行接口,方便你通过java代码来实现项目打包发布等操作。特别是用在自动化倒闭的需求中,可以考虑使用。
二、引入maven-invoker
        <dependency>
            <groupId>org.apache.maven.shared</groupId>
            <artifactId>maven-invoker</artifactId>
            <version>3.2.0</version>
        </dependency>三、操作流程
1、构建Jar包
 //构建Jar包
        InvocationRequest request = new DefaultInvocationRequest();
        request.setPomFile(new File(StringUtils.join(localFilePath, "/pom.xml")));
        request.setGoals(Lists.newArrayList("clean", "package", "-DskipTests"));
        List<String> mvnLogList = Lists.newArrayList();
//        request.setOutputHandler(new InvocationOutputHandler() {
//            @Override
//            public void consumeLine(String s) throws IOException {
//                mvnLogList.add(s);
//            }
//        });
        Invoker invoker = new DefaultInvoker();
        invoker.setMavenHome(new File(cicdPropertiesInfo.getMavenHomePath()));
        try {
            if (invoker.execute(request).getExitCode() == 0) {
               log.info("构建成功");
            }
            //记录maven log日志
            FileUtils.writeLines(FileUtils.getFile(StringUtils.join(cicdPropertiesInfo.getLocalGitDirect(), "/mvn.txt")), mvnLogList);
            System.out.println("============finish CI=================");
        } catch (MavenInvocationException e) {
            e.printStackTrace();
        }