SinerW 发表于 2018-4-26 12:09

【转载】使用java代码批量导入jar到maven的本地仓库

前段时间学习了maven 写了一个ssm框架的项目,但是因为jar包不是特别的完整,但是本地的文件夹中有相关的jar包,不想再去中央仓库下载相对应的jar包。但是使用cmd导入jar的方法又太麻烦(只能一个一个的导入)所以上网查了查应该如何批量导入jar到maven仓库,在某个博客看到一个博主写的一个工具类,解决了我批量导jar的问题
import java.io.File;
import java.util.Iterator;
import java.util.LinkedList;


/**
* 功能:生成maven批量安装jar的语句
* @AuThor pactera
*
*/
public class addjarToMaven {
       
        //批量安装jar所在目录
//        public static String filePath = "D:/develop/apache-tomcat-8.0.9/apache-tomcat-8.0.9/webapps/activiti-rest/WEB-INF/lib";
        public static String filePath = "E:/开发资料/工作流/activity/activiti-5.22.0/libs";
       
        public static void main(String[] args) {
                LinkedList<File> linkedList = new LinkedList<>();
                File f = new File(filePath);
      File[] file = f.listFiles();
      for (int i = 0; i < file.length; i++) {
              linkedList.add(file);
                }
//                printFile(linkedList);
      printFiles(linkedList);
        }
   
        /**
       * 功能:批量安装maven的本地的jar
       * @param args
       */
    public static void printFile(LinkedList<File> linkedList) {
            String sb = "mvn install:install-file -Dfile="+filePath+"/AA.jar -DgroupId=com.activiti -DartifactId=com.activiti.AA -Dversion=1.0.0 -Dpackaging=jar";
            for (Iterator<File> iterator = linkedList.iterator(); iterator.hasNext();) {
                        File file =iterator.next();
                        if(file.isFile()){
                                String fileName = file.getName();
                                System.out.println(sb.replace("AA",fileName.substring(0,fileName.lastIndexOf("."))));
                                linkedList.remove(file);
                                printFile(linkedList);
                        }else{
                                break;
                        }
                }
    }
   
   
    /**
       * 功能:批量引入maven的pom
       * @param args
       */
    public static void printFiles(LinkedList<File> linkedList) {
            String sb = "<dependency><groupId>com.activiti</groupId><artifactId>com.activiti.BBB</artifactId><version>1.0.0</version><type>jar</type></dependency>";
            for (Iterator<File> iterator = linkedList.iterator(); iterator.hasNext();) {
                        File file =iterator.next();
                        if(file.isFile()){
                                String fileName = file.getName();
                                System.out.println(sb.replace("BBB",fileName.substring(0,fileName.lastIndexOf("."))));
                                linkedList.remove(file);
                                printFiles(linkedList);
                        }else{
                                break;
                        }
                }
    }
}




因为找不到这个博客博主的名字,所以我没有办法署上他的名字如果这位博主看到了这个贴子,请通知我署上您的名字

如果违规,请删帖。

Unreal.E.Age 发表于 2018-4-26 13:25

com.activiti   能这么干吗
你要引入的包可能属于不同的机构

SinerW 发表于 2018-4-26 14:03

Unreal.E.Age 发表于 2018-4-26 13:25
com.activiti   能这么干吗
你要引入的包可能属于不同的机构

对啊,当时没有想到。因为当时导入的都是spring的jar。谢谢提醒,看来我还得再去看看了。

talons 发表于 2018-5-25 15:17

本帖最后由 talons 于 2018-5-25 15:19 编辑

不太明白为什么使用了迭代器迭代之后还要使用递归,假如linkedList 中有50个元素,是不是要递归下钻50级?而且既然已经导入到了本地仓库是不是直接从仓库jar的pom中直接获取GAV保险一点
页: [1]
查看完整版本: 【转载】使用java代码批量导入jar到maven的本地仓库