根据已有项目下lib包里jar文件生成maven的pom.xml 里面所有依赖
来源:互联网 发布:daas大数据 编辑:程序博客网 时间:2024/05/17 23:27
想将一个web项目转成Maven项目,在lib文件夹下,jar包较多的时候,就需要高效快速的生成其对应依赖来完成快速开发。那么你就来对地方了。
话不多说,直接上干货。
代码如下:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;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 MakePomFromJars { public static void main(String[] args) throws FileNotFoundException, IOException { Element dependencys = new DOMElement("dependencys"); File dir = new File("D:/pathform/WebRoot/WEB-INF/lib"); //需生成pom.xml 文件的 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()); } 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()); } 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; }}
最后其所生成的依赖都打印在控制台。只需要将其复制到maven项目下的POM.xml文件中;
*运行过程中可能会出现报错,原因及解决办法:
1.maven库里面找不到相应的jar包;
2.可在lib下将已生成的jar 删除再试。*
https://my.oschina.net/zhhzhfya/blog/735050
(源文章链接)
阅读全文
0 0
- 根据已有项目下lib包里jar文件生成maven的pom.xml 里面所有依赖
- Idear 创建maven web项目后在pom.xml里面添加依赖,但项目里没有jar包
- springmvc 依赖的jar包 maven的pom.xml文件
- maven--pom文件搜索依赖的jar包
- Maven资源库pom文件引入依赖jar包的
- 根据pom.xml文件下载jar包
- 如何在maven项目的pom.xml文件中添加jar包
- idea生成maven项目的包含依赖jar包的可执行jar文件
- Maven打包生成包含所有依赖的jar包
- Maven打包生成包含所有依赖的jar包
- IntelliJ IDEA 导入已有Maven工程无法自动下载pom.xml内jar包
- springmvc项目的maven最简依赖文件:pom.xml
- Maven管理SSM框架的pom.xml文件配置(自动下载所依赖的jar包)
- Maven管理SSM框架的pom.xml文件配置(自动下载所依赖的jar包)
- Maven管理SSM框架的pom.xml文件配置(自动下载所依赖的jar包)
- java命令执行jar包(里面的main函数,无web.xml文件)的方式(包括依赖其它的jar包),使用Google-Guava Concurrent包里的Service框架,maven工程
- 使用Maven管理依赖JAR文件,自定义项目布局,利用ANT生成不同的发布包
- maven 项目发现pom文件下的jar不更新
- hive 数据体系构建与应用的使用过程
- mybatis卡死,项目的数据库操作没响应,控制台不报错。
- Cannot create a symlink to ...... Read only file system
- 创建自己的portlet
- 87、java的IO操作-复制文本
- 根据已有项目下lib包里jar文件生成maven的pom.xml 里面所有依赖
- jQuery easyUI表格相同连续列合并
- Android中SeLinux权限 .te文件编写
- 解决Release版本--Qt编译器发生内部错误C1001问题
- 序列
- Java:继承 (概念特点)
- 88、java的IO操作-复制图片
- JVM堆内存结构
- 恢复IP地址-LintCode