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.