我真的很惊讶它的*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(...)
处理通配符。
作为一种解决方法,您可以尝试一些噱头 with <activation><property>
,但这需要使用 shell 脚本调用 maven 构建。