我真的很驚訝,*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