Maven原型文件名模式与下划线

我正在创建一个Maven原型。 我想生成像project_todo_messages.properties这样的文件,其中todo被过滤后的属性取代。

我在archetype-metadata.xmlarchetype.properties创建了一个文件project___todo___messages.properties和一个过滤后的属性todo 。 重命名没有下划线的文件,但不包括过滤属性周围带下划线的文件。 有任何想法吗?

我使用maven-archetype-plugin 2.3和org.apache.maven.archetype:archetype-packaging 2.3。

其他问题:是否可以在文件名${todo.toLowerCase()}过滤值,就像在${todo.toLowerCase()}的文件内容中一样?

您可以通过添加所需属性来完成这两项操作,并将默认值设置为所需的filter。

对于第一种情况:

  project_${todo}_messages  

将文件命名为__messagePropertiesFileName__.properties

对于第二种情况,添加另一个属性:

  ${todo.toLowerCase()}  

在文件夹/文件名中使用__todoLowerCase__

以下是archetype插件源代码片段:

 for ( Iterator iterator = request.getProperties().keySet().iterator(); iterator.hasNext(); ) { String key = (String) iterator.next(); String value = request.getProperties().getProperty( key ); ... Velocity evaluation ... 

原始属性(在您的情况下为$ {todo})尚未由Velocity处理,因此Velocity无法计算$ {todo.toLowerCase()}的实际值。 尝试重命名属性,并希望它在request.getProperties()中以正确的顺序出现.keySet()。iterator()