一、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();
}