根據已有專案下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
(源文章連結)
相關推薦
根據已有專案下lib包裡jar檔案生成maven的pom.xml 裡面所有依賴
想將一個web專案轉成Maven專案,在lib資料夾下,jar包較多的時候,就需要高效快速的生成其對應依賴來完成快速開發。那麼你就來對地方了。 話不多說,直接上乾貨。 程式碼如下: import java.io.File; import java
如何根據已有專案下lib包裡jar檔案快速生成maven的pom.xml 裡面所有依賴
想將一個web專案轉成Maven專案,在lib資料夾下,jar包較多的時候,就需要高效快速的生成其對應依賴來完成快速開發。那麼你就來對地方了。 話不多說,直接上乾貨。 import java.io.File; import java.io.FileInputSt
Linux下對已有專案快速打RPM包(只需編輯XML檔案)
期間公司在做Migration的工作,經常遇到這樣的場景:需要對現有的二進位制第三方庫和標頭檔案打包成RPM包,以便臨時測試用或者第三方庫管理。但是,修改SPEC檔案並編寫Makefile是個鬱悶的事
Eclipse 開發WEB專案 webcontent下lib中的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、在專案目