1. 程式人生 > >根據已有專案下lib包裡jar檔案生成maven的pom.xml 裡面所有依賴

根據已有專案下lib包裡jar檔案生成maven的pom.xml 裡面所有依賴

想將一個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.dom
4j.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
(源文章連結)

相關推薦

根據專案libjar檔案生成maven的pom.xml 裡面所有依賴

想將一個web專案轉成Maven專案,在lib資料夾下,jar包較多的時候,就需要高效快速的生成其對應依賴來完成快速開發。那麼你就來對地方了。 話不多說,直接上乾貨。 程式碼如下: import java.io.File; import java

如何根據專案libjar檔案快速生成maven的pom.xml 裡面所有依賴

想將一個web專案轉成Maven專案,在lib資料夾下,jar包較多的時候,就需要高效快速的生成其對應依賴來完成快速開發。那麼你就來對地方了。 話不多說,直接上乾貨。 import java.io.File; import java.io.FileInputSt

Linux專案快速打RPM(只需編輯XML檔案

期間公司在做Migration的工作,經常遇到這樣的場景:需要對現有的二進位制第三方庫和標頭檔案打包成RPM包,以便臨時測試用或者第三方庫管理。但是,修改SPEC檔案並編寫Makefile是個鬱悶的事

Eclipse 開發WEB專案 webcontentlib中的jar不自動載入的問題

在專案的應用目錄下找到.settings\org.eclipse.wst.common.component檔案,  在剛新建一個專案時,此檔案下面的內容如下:<?xml version="1.0"encoding="UTF-8"?>  <project-modules id="module

React-Native開發二 Android 專案整合React-Native

1 前言 之前寫過一篇RN的環境搭建教程和新建一個新的RN專案的文章 https://blog.csdn.net/qiyei2009/article/details/78820207 但是其實在實際開發中,在已有的android專案中整合RN情況更普遍,這篇文章就是一個怎麼在已有

專案提交到git

1、(先進入專案資料夾)通過命令 git init 把這個目錄變成git可以管理的倉庫 git init 2、把檔案新增到版本庫中,使用命令 git add .新增到暫存區裡面去,不要忘記後面的小數點“.”,意為新增資料夾下的所有檔案 git add . 3、用命令

Intellij IDEA通過SVN匯入基於Springboot的maven專案以及對專案做更新

一.匯入外部maven專案 點選“+”,輸入SVN地址並下載專案 彈出視窗,選擇new window(自己覺得哪個好就選哪個) 等待執行完畢,執行完後會出現以下情況,就需要配置一下你的maven庫了 配置Maven 彈出視窗,選擇new window(自己覺得哪個好就選哪個) 配置

碼雲上上傳專案

 首先,碼雲上建立一個空專案   得到 專案地址 xxxxx.git   git init  git remote add origin xxxxx.git git pull

Vue——專案建立及專案所代表的意思

一.工程建立(終端內建立) 1、確保安裝過vue-cli模組 npm install vue-cli -g 2、初始化本地專案(下載腳手架摸版)vue init webpack xxx(工程名稱) 3、1 Y 3 N 4、進入到工程資料夾下,cd xxx 5、執行專案於本地伺服器,npm

Git初始化本地專案,並推送到遠端Git倉庫操作

Git初始化本地已有專案,並推送到遠端Git倉庫操作 1. 建立本地專案,在專案根目錄執行git init命令 git init 2. 在git伺服器上建立一個倉庫,這裡使用GitHub建立一個倉庫。 例如這個git倉庫 https://github.com/ios-z

將本地專案 新增到 git管理中去

首先: 在 gitoschin 上面新建一個空的專案, 2 在本地目錄下 ,開啟黑視窗   3 。git init  把專案初始化後     git add .    把專案的所有檔案加入暫存區 git commit -am '專案的這初始化'      把專案提交

Git 2 ---專案引入

2018年11月08日 16:09:55 c123m 閱讀數:5 個人分類: 開發工具

微信小程式匯入專案

1.雙擊“微信web開發者工具”:2.選擇“小程式專案”:3.會出現管理專案,和一個+號:在管理專案中有個“新增”,也可以點選+號:4.會出現新增頁面,選擇專案目錄,填入專案名稱以及appId5.可以選擇無appId點選確認,就將專案匯入成功了。注:需要選擇目錄為src原始碼

IDEA - 將本地專案 提交到SVN

現在網上有很多這種的文章。但是絕大部分的文章都寫的很片面。只是從SVN伺服器匯入到IDEA中。然後進行提交、更新、刪除的操作。那麼,如果是本地已經有了專案,我們怎麼新增到SVN中呢? 比如說本地已經有了一個專案Bundle.我要將專案提交到SVN上。 人工智慧網址導航 提供

專案配置cuda

關於如何向已有專案配置cuda的問題在網上已有非常多的解答,基本上就是如何生成自定義,配置目錄及連結器輸入lib等。 因此,在這裡只說一下之後的一些問題,首先配置完所有lib以後是無法執行的,因為缺少dll。因此需要從cuda的安裝目錄中把一些dll拷貝過來,其中包括cannot load

專案繫結到git上

1 連結 個人部落格: alex-my.xyz CSDN: blog.csdn.net/alex_my 2 建立遠端倉庫 登入github,在上邊建立一個倉庫 複製倉庫連結,比如為[ema

Github使用之將專案提交到Github/從Github上pull到本地

新增已有專案到github        新建repository,可以在github網站上直接新建或者使用windows github工具。        進入github repository 專案        在github windows工具中使

通過專案名獲取的全部類

通過專案下的包名獲取包下的全部類 public class GetClasses { public static Set<Class<?>> classes = new HashSet<>(); public static void main(Stri

如何用Jenkins複製專案的配置

文章目錄 環境版本 1. 建立一個新JOB 2. 輸入新JOB的名字 3. 填入要COPY的JOB名字 4.點選OK 5. 點選APPLY 參考連結

將Visual Studion中專案同步到碼雲

1、事先在Visual Studio建立專案,並安裝碼雲外掛 外掛地址:https://www.oschina.net/p/codecloud-visualstudio   2、在碼雲上新建倉庫 建立完畢後,複製遠端git地址:     3、在專案目