既存のプロジェクトjarファイルに基づいてmaven pom.xmlを生成します

パッケージデモ; 

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();
        依存関係をます。

送信元:https : //my.oschina.net/zhhzhfya/blog/735050

おすすめ

転載: www.cnblogs.com/zhaochi/p/12748092.html