パッケージデモ; 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; パブリック クラスMakePomFromJars { public static void main(String [] args)throws FileNotFoundException、IOException { Element dependencys = new DOMElement( "dependencys" ); ファイルdir = new File( "/ Users / xxx / Documents / work / workspaces / maven_demo / src / resources / webapp / WEB-INF / lib" ); for (File jar:dir.listFiles()){ JarInputStream jis = new JarInputStream(new FileInputStream(jar)); マニフェストmainmanifest = jis.getManifest(); jis.close(); if(mainmanifest == null ){ System.err.println(jar.getName()); 続ける; } 文字列bundleNameを = mainmanifest.getMainAttributes()。getValue( "Bundle-Name" ); 文字列bundleVersion = mainmanifest.getMainAttributes()。getValue( "Bundle-Version" ); 要素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); =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)); dependency.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"); 試す{ 文字列のURL = "http://search.maven.org/solrsearch/select?q=a%3A%22" +キー+ "%22%20および%20V%3A%22" +版+「%22& org.jsoup.nodes.Document doc = Jsoup.connect(url).ignoreContentType(true).timeout(30000 ).get(); 文字列elem = doc.body()。text(); JSONObjectレスポンス = JSONObject.parseObject(elem).getJSONObject( "response" ); if(response.containsKey( "docs")&& response.getJSONArray( "docs")。size()> 0 ){ JSONObject docJson = response.getJSONArray( "docs")。getJSONObject(0 ); 要素 groupId = new DOMElement( "groupId" );DOMElement( "artifactId" ); 要素のバージョン = 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 (例外e){ e.printStackTrace(); 依存関係をます。
既存のプロジェクトjarファイルに基づいてmaven pom.xmlを生成します
おすすめ
転載: www.cnblogs.com/zhaochi/p/12748092.html
おすすめ
ランキング