Ich möchte gerne feststellen können, welche Versionen einer Abhängigkeit ich zur Laufzeit ausführe, sowie die Version der Webanwendung selbst.
Jede Webanwendung, die ich einsetze, ist mit einer pom.xml verpackt, aus der ich lesen kann, dieser Teil ist trivial. Der nächste Teil ist das Parsen der pom ohne viel Aufwand.
Während die Webanwendung läuft, möchte ich wissen, welche Version ich habe und welche Versionen meine Abhängigkeiten sind.
Im Idealfall würde ich gerne so etwas machen wie:
MavenPom pom = new MavenPom(webApplicationPomInputStream);
pom.getVersion();
pom.getArtifactId();
pom.getGroupId();
for(Dependency dependency:pom.getDependencies())
{
dependency.getVersion();
dependency.getArtifactId();
dependency.getGroupId();
}
Sollte ich nur XPath-Notation hier verwenden, oder gibt es eine Bibliothek, die ich aufrufen kann, um diese Art von Sache zu tun?
Nach diesen Beiträgen denke ich, dass der schnellste/zuverlässigste Weg darin besteht, eine Textdatei mit dem Abhängigkeitsbaum zu erzeugen: mvn dependency:tree. Dann werde ich die Textdatei parsen, die groupId, artifactId und Version trennen und dann die Struktur anhand der Einrückungsebene bestimmen.
Wenn ich das tue, kann ich dann in XML statt in Text exportieren? Ich kann dann JAXB verwenden und diese Datei leicht parsen, ohne viel Arbeit zu machen.
Es ist ein Hack, sieht aber vielversprechend aus.
Walter