2010-12-10 7 views
1

Ich habe versucht, maven pom.xml zu parsen. Ich war in gewisser Weise erfolgreich. Aber mein Problem ist, dass ich die Standardwerte nicht bekommen kann. Ich muss die Standardwerte manuell injizieren. Wenn beispielsweise die Versionsnummer in pom.xml nicht angegeben ist, ist es offensichtlich, dass die übergeordnete Version verwendet wird. Wenn Build-Verzeichnis nicht angegeben ist, wird es Ziel sein.Parsing maven pom.xml, mit maven jar

Ich muss wissen, welche Klassen ich verwenden sollte, um diese Dinge automatisch zu besetzen. Abgesehen davon würde ich gerne Abhängigkeitsgraphen für mich erstellen lassen. Der Code, den ich zum Parsen verwende, ist

 Model model = null; 
    FileReader reader = null; 
    MavenXpp3Reader mavenreader = new MavenXpp3Reader(); 
    try { 
     reader = new FileReader(pomfile); 
     model = mavenreader.read(reader); 
     model.setPomFile(pomfile); 

     if (model.getBuild() != null) { 
      // location of output directory basically target 
      if (model.getBuild().getDirectory() == null) { 
      //set the build directory 

      } // location of compiled classes 
      if (model.getBuild().getOutputDirectory() == null) { 
         // set the classes directory 
      } 
     } 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
     throw new RuntimeException("pom file not found " + pomfile); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     throw new RuntimeException("pom file is not accessible " + pomfile); 
    } catch (XmlPullParserException e) { 
     e.printStackTrace(); 
     throw new RuntimeException("unable to parse pom " + pomfile); 
    } catch (NullPointerException nullPointerException) 
     System.out.println("Exception setting build dir "+model.getPackaging()); 

    } finally { 
     if (reader != null) { 
      reader.close(); 
     } 
    } 

Danke.

Antwort

-1

Sehen Sie sich den Code für die Hilfe: effektive-pom Plugin-Ziel, oder tatsächlich verwenden Sie es, um die effektive POM und xml-parse das Ergebnis zu dumpen.