我真的很惊讶,*beans.xml
的作品。
据我所见,通配符不支持在文件激活。根据<file>
计算配置文件激活的源代码可在FileProfileActivator中找到。核心逻辑是这样的:
String path = //<file><exists> ...
RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
interpolator.addValueSource(/* ${basedir} suppert */)
interpolator.addValueSource(new MapBasedValueSource(context.getProjectProperties()));
interpolator.addValueSource(new MapBasedValueSource(context.getUserProperties()));
interpolator.addValueSource(new MapBasedValueSource(context.getSystemProperties()));
path = interpolator.interpolate(path, "");
path = pathTranslator.alignToBaseDirectory(path, basedir);
File f = new File(path);
if (!f.isAbsolute()){
return false;
}
boolean isActive = f.exists();
而且,无论interpolate(...)
也不alignToBaseDirectory(...)
过程通配符。
作为一种解决方法,您可以尝试使用<activation><property>
,但这需要使用shell脚本调用maven版本。
请注意,在3.0.5源代码(https://maven.apache.org/ref/3.0.5/xref/org/apache/maven/model/profile/activation/FileProfileActivator.html)中,'' context.getProjectProperties()'永远不会被调用。 – Stephan