Я хотел бы иметь возможность определить, какие версии я запускаю зависимость во время выполнения, а также версию самого веб-приложения.Maven - зависимостей поиска во время выполнения
Каждое веб-приложение, которое я развертываю, упаковано с pom.xml, который я могу прочитать, эта часть тривиальна. Следующая часть - синтаксическая разборка без особых усилий.
Как работает веб-приложение, я хочу уметь понять, какая версия я есть, и какие версии имеют мои зависимости.
В идеале я хотел бы сделать что-то вроде:
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 и версию, а затем определяю структуру по уровню отступа.
Если я это сделаю, могу ли я экспортировать в XML вместо текста? Затем я могу использовать JAXB и легко анализировать этот файл, не делая никакой работы.
Это взлом, но выглядит многообещающим.
Walter
Что вы пытаетесь достичь? вы строите инструмент maven? если вы просто хотите узнать его для конкретного проекта, сделайте «mvn dependecy: tree». если вы работаете над bash do 'mvn dependency: tree | grep runtime' –