栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 通过mave命令下载jar包的示例代码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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}
      
     
    
   
  
 

代码示例:

public class MavenParse {
 private static String mavenPath = "/maven/apache-maven-3.6.3/bin/mvn";
 
 private static final String MVN_PARAM = " dependency:copy -DoutputDirectory=lib -U";
 
 void downloadDependency(DependencyDTO dependencyDTO, String jarName) throws Exception {
  // 准备下载命令
  String mavenCommandPath =
   System.getProperty("os.name").toLowerCase().startsWith("win") ? "mvn" : mavenPath;
  String mvnCmd = mavenCommandPath + MVN_PARAM;
 
  // 创建下载jar包存储的位置
  File workDir = getMavenRepository(jarName);
  // 基于模板创建pom.xml
  File pomFile = new File(workDir, "pom.xml");
  String pomXml = createPomModel(dependencyDTO);
  FileUtils.writeStringToFile(pomFile, pomXml, "utf-8");
  Process process = Runtime.getRuntime().exec(mvnCmd, null, workDir);
  // 验证下载成功
  if(null == process || process.waitFor()!= 0){
   FileUtils.deleteQuietly(workDir);
   throw new Exception("下载maven包失败,请检查maven配置");
  }
 }
 
 private String createPomModel(DependencyDTO dependencyDTO) throws IOException {
 
  File pomFile = new File(getClass().getResource("/pom.xml").getFile());
  String template = FileUtils.readFileToString(pomFile, "utf-8");
  return MessageFormat.format(template,
   dependencyDTO.getGroupId(),
   dependencyDTO.getArtifactId(),
   dependencyDTO.getVersion());
 
 }
 
 
 private static File getMavenRepository(String fileName)throws Exception {
 
  String parentPath = System.getProperty("user.dir")+File.separator+"automation";
  parentPath = parentPath+File.separator+"mavenParse";
  parentPath = parentPath+File.separator+FilenameUtils.getbaseName(fileName);
 
  File dir = new File(parentPath);
  try {
   FileUtils.forceMkdir(dir);
  } catch (Exception e) {
   throw new RuntimeException(e);
  }
  return dir;
 }
}

测试代码:

public static void main(String[] args) throws Exception {
 String dependency = "n"
  + "   commons-ion"
  + "   commons-ion"
  + "   2.6n"
  + "  ";


 DependencyDTO dependencyDTO = new DependencyDTO();

 dependencyDTO.setGroupId("commons-io");
 dependencyDTO.setArtifactId("commons-io");
 dependencyDTO.setVersion("2.6");
 dependencyDTO.setPomContent(dependency);

 MavenParse parse = new MavenParse();

 parse.downloadDependency(dependencyDTO,"commons-io.jar");
}

好啦,暂时就先记录在这里,后面有机会在完善

到此这篇关于Java 通过mave命令下载jar的示例代码的文章就介绍到这了,更多相关java mave命令下载jar内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/130444.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号