我希望能够在运行时确定依赖项的版本以及Web应用程序本身的版本。每个我部署的Web应用程序都打包了一个pom.xml文件,我可以从中读取,这一点很简单。接下来的问题是如何轻松解析pom文件。当Web应用程序在运行时,我想要了解自己的版本以及依赖项的版本。理想情况下,我希望能够做到以下操作:
我应该只在这里使用XPath符号,还是可以调用一个库来完成这种操作呢?
在阅读了这些帖子之后,我认为最快/最可靠的方法是生成一个包含依赖树的文本文件:mvn dependency:tree。然后,我将解析文本文件,分离出groupId、artifactId和version,然后通过缩进级别确定结构。
如果我这样做,我能导出XML而不是文本吗?我可以使用JAXB轻松解析该文件,而无需进行任何/太多工作。
这是一种hack方法,但看起来很有前途。
沃尔特
MavenPom pom = new MavenPom(webApplicationPomInputStream);
pom.getVersion();
pom.getArtifactId();
pom.getGroupId();
for(Dependency dependency:pom.getDependencies())
{
dependency.getVersion();
dependency.getArtifactId();
dependency.getGroupId();
}
我应该只在这里使用XPath符号,还是可以调用一个库来完成这种操作呢?
在阅读了这些帖子之后,我认为最快/最可靠的方法是生成一个包含依赖树的文本文件:mvn dependency:tree。然后,我将解析文本文件,分离出groupId、artifactId和version,然后通过缩进级别确定结构。
如果我这样做,我能导出XML而不是文本吗?我可以使用JAXB轻松解析该文件,而无需进行任何/太多工作。
这是一种hack方法,但看起来很有前途。
沃尔特