如何从我的本地存储库以编程方式获取Maven工件的最高版本?

时间:2015-04-29 13:17:18

标签: maven artifact aether

在很多帖子中,我看到Aether项目有助于处理工件存储库。我想要的是仅为指定的 groupId artifactId 检索最高版本。

在Aether wiki中,他们提供了 org.apache.maven:maven-profile:2.2.1 工件的案例,其中他们也指定了版本:

Dependency dependency = 
    new Dependency(
        new DefaultArtifact("org.apache.maven:maven-profile:2.2.1"),
        "compile"
    );

但是我需要找回版本,一个工件的最高版本。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

如果您可以阅读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;
}