传统java web项目转maven,并获得对应jar包的依赖

您所在的位置:网站首页 webroot目录 传统java web项目转maven,并获得对应jar包的依赖

传统java web项目转maven,并获得对应jar包的依赖

2024-07-16 02:07| 来源: 网络整理| 查看: 265

传统的java项目是指需要使用什么jar包的时候,把jar包的文件拷贝到项目的WebRoot目录下的lib文件夹里。

这样搭建项目,管理jar包比较麻烦,所以果断使用maven。

有时候遇见项目已经开发了一小部分了,你说重新写吧,又浪费的原来的工时,同时又想使用maven。这中间的转换其实是很简单的。

使用IDEA开发!

 右击项目名,选择Add FrameWork Support...

 

 在Add FrameWork Support配置窗口里往下拉,找到maven,打上勾,点确定。到这一步,项目的目录结构已经变成maven的骨架了。

 下面就是把原有的jar包文件,自动转换pom.xml里面的依赖

 这一步,需要自己手写一个工具类,就叫 print_jarTopom

package cn.study.util;import java.io.*;import java.util.jar.JarInputStream;import java.util.jar.Manifest;import org.dom4j.Element;import org.dom4j.dom.DOMElement;import org.jsoup.Jsoup;import com.alibaba.fastjson.JSONObject;public class print_jarTopom { public static void main(String [] args) throws IOException{ Element dependencys = new DOMElement("dependencys"); File dir = new File("C:/Users/huanglei/Desktop/KinderGartenManage (1)/WebRoot/WEB-INF/lib"); //需生成pom.xml 文件的 lib路径 //C:/Users/huanglei/Desktop/KinderGartenManage (1)/WebRoot/WEB-INF/lib for (File jar : dir.listFiles()) { JarInputStream jis = new JarInputStream(new FileInputStream(jar)); Manifest mainmanifest = jis.getManifest(); jis.close(); String bundleName = mainmanifest.getMainAttributes().getValue("Bundle-Name"); String bundleVersion = mainmanifest.getMainAttributes().getValue("Bundle-Version"); Element ele = null; /* System.out.println(jar.getName());*/ StringBuffer sb = new StringBuffer(jar.getName()); if (bundleName != null) { bundleName = bundleName.toLowerCase().replace(" ", "-"); sb.append(bundleName+"\t").append(bundleVersion); ele = getDependices(bundleName, bundleVersion); /* System.out.println(sb.toString()); System.out.println(ele.asXML());*/ } if (ele == null || ele.elements().size() == 0) { bundleName = ""; bundleVersion = ""; String[] ns = jar.getName().replace(".jar", "").split("-"); for (String s : ns) { if (Character.isDigit(s.charAt(0))) { bundleVersion += s + "-"; } else { bundleName += s + "-"; } } if (bundleVersion.endsWith("-")) { bundleVersion = bundleVersion.substring(0, bundleVersion.length() - 1); } if (bundleName.endsWith("-")) { bundleName = bundleName.substring(0, bundleName.length() - 1); } ele = getDependices(bundleName, bundleVersion); sb.setLength(0); sb.append(bundleName+"\t").append(bundleVersion); /* System.out.println(sb.toString());*/ System.out.println(ele.asXML()); /* savepomFile(dependencys.asXML()+"\r\n");*/ } ele = getDependices(bundleName, bundleVersion); if (ele.elements().size() == 0) { ele.add(new DOMElement("groupId").addText("not find")); ele.add(new DOMElement("artifactId").addText(bundleName)); ele.add(new DOMElement("version").addText(bundleVersion)); } dependencys.add(ele); /* System.out.println();*/ } /* System.out.println(dependencys.asXML());*/ savepomFile(dependencys.asXML()); } private static void savepomFile(String asXML) { FileWriter fwriter; fwriter = null; try { fwriter = new FileWriter("C:\\Users\\huanglei\\Desktop\\pom.txt"); fwriter.write(asXML); } catch (IOException ex) { ex.printStackTrace(); } finally { try { fwriter.flush(); fwriter.close(); } catch (IOException ex) { ex.printStackTrace(); } } } public static Element getDependices(String key, String ver) { Element dependency = new DOMElement("dependency"); // 设置代理 // System.setProperty("http.proxyHost", "127.0.0.1"); // System.setProperty("http.proxyPort", "8090"); try { String url = "http://search.maven.org/solrsearch/select?q=a%3A%22" + key + "%22%20AND%20v%3A%22" + ver + "%22&rows=3&wt=json"; org.jsoup.nodes.Document doc = Jsoup.connect(url).ignoreContentType(true).timeout(30000).get(); String elem = doc.body().text(); JSONObject response = JSONObject.parseObject(elem).getJSONObject("response"); if (response.containsKey("docs") && response.getJSONArray("docs").size() > 0) { JSONObject docJson = response.getJSONArray("docs").getJSONObject(0); Element groupId = new DOMElement("groupId"); Element artifactId = new DOMElement("artifactId"); Element version = new DOMElement("version"); groupId.addText(docJson.getString("g")); artifactId.addText(docJson.getString("a")); version.addText(docJson.getString("v")); dependency.add(groupId); dependency.add(artifactId); dependency.add(version); } } catch (Exception e) { e.printStackTrace(); } return dependency; }}这代码我也是拷贝的人家的!需要注意的就是lib文件夹路径根据自己的项目目录设置正确就好了!在控制台打印出来的效果如下: 把这些copy到pom.xml里面就大功告成了!可能会出现的bug:控制台报空指针异常(那是说你的jar文件对应的版本在maven仓库里找不到,把那个jar包copy出去一份,然后在项目里删除了就OK了)点个赞朋友,谢谢。评论一下更加开心。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3