Как программно получить самую высокую версию для артефакта Maven из моего локального хранилища?
Во многих постах я видел, что проект Aether помогает в работе с репозиториями артефактов. Я хотел бы получить самую высокую версию только для указанного groupId и artifactId.
В эфире вики они представляют случай для org.apache.maven:maven-profile:2.2.1 артефакт, где они также указывают версию:
Dependency dependency =
new Dependency(
new DefaultArtifact("org.apache.maven:maven-profile:2.2.1"),
"compile"
);
Но мне нужно вернуть версию, самую высокую версию для артефакта. Как я мог это сделать?
1 ответ
Если вы можете прочитать файл pom.xml, вы можете сделать это с помощью простого XML-анализа.
public static String getVersionOf(File pomFile) throws ParserConfigurationException, IOException, SAXException {
String version = "";
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(pomFile);
NodeList nodeList = doc.getElementsByTagName("project");
for(int i = 0; i < nodeList.getLength(); i++) {
Element node = (Element) nodeList.item(i);
version = node.getElementsByTagName("version").item(0).getTextContent();
}
return version;
}