获取Maven版本(次要和主要)

时间:2015-12-17 15:13:00

标签: java maven-3

我们正在尝试从maven pom.xml文件中获取应用程序版本,并动态决定某些文档的位置。 例如,如果应用程序版本为1.5,则文档可能位于version1.5/application/中,依此类推。

直接从pom.xml获取版本的问题是,如果应用程序版本是快照,它将返回1.5.0-SNAPSHOT。这是个问题。 现在我们通过获取前三个字符的子字符串来解决它。 如果应用程序版本为1.11,这种解决问题的方法可能会在将来产生问题。

我们有没有办法只获得主要和次要版本,而没有maven中的快照?

例如,

  • 如果maven版本是1.5.0-SNAPSHOT,我想要1.5
  • 如果是maven 版本是1.5.1,我仍然只想1.5
  • 如果maven版本是 1.12.1,我只想要1.12

2 个答案:

答案 0 :(得分:1)

我建议使用提供目标build-helper-maven-pluginparse-version-mojo,它将解析后的版本信息作为属性提供。

答案 1 :(得分:0)

试试这个:

public String getSanitizedVersion(String version) {
    // Note that String.split() takes a regexp, so we need to escape the ".".
    String[] versionComponents = String.split(version, "\\.");
    if (versionComponents != null && versionComponents.length >= 2) {
        return versionComponents[0] + "." + versionComponents[1];
    }
    return null;
}

希望有所帮助!