我们正在尝试从maven pom.xml文件中获取应用程序版本,并动态决定某些文档的位置。
例如,如果应用程序版本为1.5,则文档可能位于version1.5/application/
中,依此类推。
直接从pom.xml获取版本的问题是,如果应用程序版本是快照,它将返回1.5.0-SNAPSHOT
。这是个问题。
现在我们通过获取前三个字符的子字符串来解决它。
如果应用程序版本为1.11,这种解决问题的方法可能会在将来产生问题。
我们有没有办法只获得主要和次要版本,而没有maven中的快照?
例如,
答案 0 :(得分:1)
我建议使用提供目标build-helper-maven-plugin的parse-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;
}
希望有所帮助!