Java 通过mave命令下载jar包的示例代码
之前一直都是使用的idea,创建maven工程进行jar包导入操作,居然接到了通过java代码导入jar包的需求,满脸的懵逼,好在功夫不负有心人,最终将其拿来了,
现在这里记录一下,方便以后学习使用;
本次采用的方案是基于pom.xml模板的形式+maven命令的方式,到仓库下载jar报错,示例代码如下:
项目依赖:
commons-io commons-io 2.6
pom.xml模板:
4.0.0 2019 com.tx.app autoapi jar 1.0 autoapi com.tx parent-pom 1.0.2 autoapi 远端仓库地址 org.apache.maven.plugins maven-dependency-plugin 3.0.0 {0} {1} {2}
代码示例:
publicclassMavenParse{
privatestaticStringmavenPath="/maven/apache-maven-3.6.3/bin/mvn";
privatestaticfinalStringMVN_PARAM="dependency:copy-DoutputDirectory=lib-U";
voiddownloadDependency(DependencyDTOdependencyDTO,StringjarName)throwsException{
//准备下载命令
StringmavenCommandPath=
System.getProperty("os.name").toLowerCase().startsWith("win")?"mvn":mavenPath;
StringmvnCmd=mavenCommandPath+MVN_PARAM;
//创建下载jar包存储的位置
FileworkDir=getMavenRepository(jarName);
//基于模板创建pom.xml
FilepomFile=newFile(workDir,"pom.xml");
StringpomXml=createPomModel(dependencyDTO);
FileUtils.writeStringToFile(pomFile,pomXml,"utf-8");
Processprocess=Runtime.getRuntime().exec(mvnCmd,null,workDir);
//验证下载成功
if(null==process||process.waitFor()!=0){
FileUtils.deleteQuietly(workDir);
thrownewException("下载maven包失败,请检查maven配置");
}
}
privateStringcreatePomModel(DependencyDTOdependencyDTO)throwsIOException{
FilepomFile=newFile(getClass().getResource("/pom.xml").getFile());
Stringtemplate=FileUtils.readFileToString(pomFile,"utf-8");
returnMessageFormat.format(template,
dependencyDTO.getGroupId(),
dependencyDTO.getArtifactId(),
dependencyDTO.getVersion());
}
/**
*创建jar包存储的文件夹
*@paramfileName
*@return
*@throwsException
*/
privatestaticFilegetMavenRepository(StringfileName)throwsException{
StringparentPath=System.getProperty("user.dir")+File.separator+"automation";
parentPath=parentPath+File.separator+"mavenParse";
parentPath=parentPath+File.separator+FilenameUtils.getBaseName(fileName);
Filedir=newFile(parentPath);
try{
FileUtils.forceMkdir(dir);
}catch(Exceptione){
thrownewRuntimeException(e);
}
returndir;
}
}
测试代码:
publicstaticvoidmain(String[]args)throwsException{
Stringdependency="\n"
+"commons-io \n"
+"commons-io \n"
+"2.6 \n"
+" ";
DependencyDTOdependencyDTO=newDependencyDTO();
dependencyDTO.setGroupId("commons-io");
dependencyDTO.setArtifactId("commons-io");
dependencyDTO.setVersion("2.6");
dependencyDTO.setPomContent(dependency);
MavenParseparse=newMavenParse();
parse.downloadDependency(dependencyDTO,"commons-io.jar");
}
好啦,暂时就先记录在这里,后面有机会在完善
到此这篇关于Java通过mave命令下载jar的示例代码的文章就介绍到这了,更多相关javamave命令下载jar内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。