searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Maven Java客户端(maven-invoker)操作简介

2023-11-16 06:44:11
72
0

一、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();
        }
0条评论
0 / 1000