由于原项目为web项目,目前需要转换为maven项目,由于项目中存在100+的jar,手动一个个处理很麻烦,使用下方代码可自动生成pom文件。

此代码来源于其他博客,具体博客地址忘了。。。

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 makePom {public static void main(String[] args) throws FileNotFoundException, IOException {Element dependencys = new DOMElement("dependencys");File dir = new File("F:/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;}
}

部分jar包自动生成可能存在异常,请自行核对。

注:由于部分jar包可能 为项目独有的,并不存在于maven仓库或与maven仓库存在差异化,需将项目独有的jar上传到私服然后再重新导入,或者使用本地导入方式。

本地导入方式:

<dependency>
            <groupId>com.alipay</groupId>
            <artifactId>alipay-sdk</artifactId>
            <version>20170307171631</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/alipay-sdk-java20170307171631.jar</systemPath>
</dependency>

内置属性(Maven预定义,用户可以直接使用)

${basedir}表示项目根目录,即包含pom.xml文件的目录;

${version}表示项目版本;

${project.basedir}同${basedir};

${project.baseUri}表示项目文件地址;

${maven.build.timestamp}表示项目构件开始时间;

${maven.build.timestamp.format}表示属性${maven.build.timestamp}的展示格式,默认值为yyyyMMdd-HHmm,可自定义其格式,其类型可参考

${project.basedir}/lib/alipay-sdk-java20170307171631.jar 本地项目jar包地址

快速生成maven项目中pom文件相关推荐

  1. 解决Maven项目中pom.xml文件报错(Failure to transfer....)的问题

    解决Maven项目中pom.xml文件报错(Failure to transfer....)的问题 参考文章: (1)解决Maven项目中pom.xml文件报错(Failure to transfer ...

  2. springboot项目中pom文件parent报错的解决方法

    springboot项目中pom文件parent报错的解决方法 1:首先配置maven环境 2:修改maven的settings.xml文件 3:用编辑器修改settings文件 4:设置Eclips ...

  3. idea在克隆Maven项目时pom文件无法识别子模块,依赖导入不进来

    问题:idea在clone项目时,发现子模块的一些maven依赖一直到不进来,然后项目就一直报错 后来发现子模块的pom文件的标识与其他子模块的pom文件的标识不一样,后发现正常下的maven项目的p ...

  4. Maven项目在pom文件中引入lib下的第三方jar包并打包进去

    场景 Maven中引入依赖的jar包,大都是通过在pom.xml中使用坐标添加依赖的方式. 如果需要引用的jar包在Maven中央仓库下没有,那么怎么在项目中引入. 首先在工程目录下新建libs目录 ...

  5. Maven项目中pom.xml文件被Ignored(忽略)的解决办法问题

    出现的原因:新创建的Maven项目与之前被删除的Maven项目重名了:由于相同名称的Module在之前被创建过,因此在IDEA中留有痕迹.重新创建一个新的同名Module会让IDEA误以为是之前被Di ...

  6. IntellijIDEA中maven模块中POM文件不生效

    在使用idea的过程中,遇到其中一个maven模块变成灰色的故障(common为正常模块,config为故障模块)如下所示: 正常模块是白色高亮,故障模块为灰色. 会导致的原因 故障模块新增加引用,模 ...

  7. 【Springboot项目中pom文件parent报错的解决方法】~ ~ 详细教程

    目录 (一)问题说明 (二)解决方法 (1)配置maven环境 (2)修改settings.xml文件 (3)修改的方法 (4)配置maven信息 (5)选中修改的文件 (6)update maven ...

  8. eclipse中导入maven项目时pom文件报错

    问题: org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.a ...

  9. Java Web的Maven项目中Properties文件的使用(2)

    为什么80%的码农都做不了架构师?>>>    背景 Java Web中常用一些Properties文件进行部署配置,其中如果在里面配置OS的路径,需要跨平台,主要就是考虑win系统 ...

最新文章

  1. 跨链(8)Cosmos之“跨链交互协议IBC”
  2. Spring中配置数据源的4种形式
  3. 关于Java栈与堆的思考
  4. GDB调试——常用命令
  5. 8cm等于多少像素_「前端剑指offer第5期」物理像素、逻辑像素、CSS像素、PPI、设备像素比是什么...
  6. nginx mozilla_Mozilla Firefox 11岁生日快乐!
  7. jquery06 jQuery.extend 给jQuery函数添加、继承 静态方法
  8. 【luogu4185】 [USACO18JAN]MooTube [并查集]
  9. FineReport中统计列中不同数据的个数
  10. displaytag 使用
  11. JavaScript是什么意思?
  12. python复制上一条语句快捷键_pycharm快捷键及一些常用设置
  13. MATLAB_数值计算_线性方程组
  14. 柯西过程(Cauchy process)
  15. OPENCV入门教程十一:dilate图像膨胀
  16. seaborn直方图、散点图与回归分析图的绘制
  17. 2022ICPC杭州 F. Da Mi Lao Shi Ai Kan De codeforces gym 104090F
  18. NYOJ 495 少年 DXH
  19. cf登录游戏只显示服务器的字体,cf辅助灭天大神修复文件字体花样请求解决方法...
  20. 10270 : 青蛙的游戏

热门文章

  1. [题解]LuoGu2343:宝石管理系统
  2. 记录:数据库(MySQL)之多表查询
  3. 华为L2TP NAS initial 配置详解以及安全策略的原理
  4. 电话销售找客户难在哪?销售找客户方法
  5. 基于51单片机额温枪非接触红外人体测温仪原理图PCB
  6. 一个GPIB操作的C#类
  7. Unity 横屏、竖屏多分辨率自适应
  8. HDU 6542 SSY and JLBD (模拟)
  9. modle bulinder 实践3.生成平行线
  10. 大数据之CDH数仓(19) | 测试之集群资源管理