2013-10-25 37 views
3

我想从我的原型创建一个xml文件,该文件的名称包含两个连接在一起的变量。Maven 2原型创建:如何连接文件夹/文件名中的变量

例: 原型-metadata.xml中

<requiredProperties> 
    <requiredProperty key="category"/> 
    <requiredProperty key="description"/> 
</requiredProperties> 

定类别= “MyCategory” 和描述= “MyDescription”,我想我的文件被命名为 “MyCateogryMyDescription.xml”。不是“MyCategory-MyDescription.xml”,也不是两者之间的任何东西。

这个怪异的,特定的,僵硬的要求背后的原因是,很明显,向后兼容我不想接触的标准。

我的第一次尝试是明显的__category ____描述__。xml,但事实证明生成的文件名为“MyCategory__description __。xml”。如果我在它们之间添加了一些东西,像__category __-__ description __。xml这样的破折号,它会正确地解析为“MyCategory-MyDescription.xml”,但这并不是我想要的,正如我之前所说的。

+0

我现在有同样的问题。你有没有为此找到一个解决方案? –

+0

我还没有找到解决方案,但问题出现在Maven Archetype代码中 - 它们使用正则表达式'__。* __',它是贪婪的并且丢失了任何前导下划线。应该重写正则表达式来替换。*为'不带下划线',如'__^[_] __'。但是有些人在多年前提交了这样的修复,并且从未将其纳入主要版本。我现在要去尝试下面的组合方法,看看它是否有效。 –

回答

3

可以定义附加的requiredProperty,其默认值对应于描述类别标记值的组合(即,可访问通过通常的$ {...}表示法的装置)。

因此,考虑到上述引用的例子,可以插入下面的代码片段在原型-metadata.xml中文件

<requiredProperties> 
    <requiredProperty key="category"/> 
    <requiredProperty key="description"/> 
    <requiredProperty key="categoryDescriptionComposition"> 
     <defaultValue>${category}${description}</defaultValue> 
    </requiredProperty> 
</requiredProperties> 

最后命名文件__categoryDe​​scriptionComposition __。XML

+0

谢谢!对于旧的回复感到抱歉,我想你很可能早就想到了。我以前应该真的回答过... – faustool

相关问题