2010-12-10 32 views
1

J'ai essayé d'analyser maven pom.xml. J'ai réussi dans une certaine mesure. Mais mon problème est que je ne peux pas obtenir les valeurs par défaut. Je dois injecter manuellement les valeurs par défaut. Par exemple, si le numéro de version n'est pas spécifié dans pom.xml, il est évident que la version parente sera utilisée. Si le répertoire de construction n'est pas spécifié, il sera cible.Analyser maven pom.xml, en utilisant maven jar

J'ai besoin de savoir, quelles classes devrais-je utiliser pour obtenir ces choses peuplées automatiquement. En dehors de cela, je voudrais avoir un graphique de dépendance construit pour moi. Le code que j'utilise pour analyser est

 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(); 
     } 
    } 

Merci.

Répondre

-1

Regardez le code pour le aide: efficace-pom objectif de plugin, ou l'utilise réellement pour vider le POM efficace et xml-analyser le résultat.