有没有一种方法来验证提供给Maven原型的属性?如果是这样如何?验证Maven原型属性
我在我的archetype-metadata.xml文件中有一个自定义的requiredProperty。值必须匹配一个特定的正则表达式,我想在原型期间验证:generate。
有没有一种方法来验证提供给Maven原型的属性?如果是这样如何?验证Maven原型属性
我在我的archetype-metadata.xml文件中有一个自定义的requiredProperty。值必须匹配一个特定的正则表达式,我想在原型期间验证:generate。
我现在正在看这个,虽然在原型插件中没有明确的支持,或者是在archetype-metadata.xml中设置验证规则/类型的方法,因为它使用速度,它做一些基本的验证。正如评论说 - 它是不漂亮,但它的工作原理...
看到这个职位Maven archetype required property number
更新:现在这是可能的。看到上面的其他答案,或https://issues.apache.org/jira/browse/ARCHETYPE-487
我已经实现在Maven的原型此功能,并提交它作为一个拉请求:
https://issues.apache.org/jira/browse/ARCHETYPE-487
例子:
<requiredProperties>
<requiredProperty key="pluginPackage">
<validationRegex><![CDATA[^[a-z][a-z0-9_]*(\.[a-z0-9_]+)+[0-9a-z_]$]]></validationRegex>
</requiredProperty>
<requiredProperty key="pluginId">
<validationRegex><![CDATA[^[a-zA-Z0-9-]+$]]></validationRegex>
</requiredProperty>
<requiredProperty key="pluginName">
<validationRegex><![CDATA[^([a-zA-Z_$][a-zA-Z\d_$]*\.)*[a-zA-Z_$][a-zA-Z\d_$]*$]]></validationRegex>
</requiredProperty>
<requiredProperty key="pluginProvider">
</requiredProperty>
<requiredProperty key="pluginZipFileName">
<validationRegex><![CDATA[^[^*&%\s]+$]]></validationRegex>
</requiredProperty>
<requiredProperty key="pluginVersion">
<validationRegex><![CDATA[^[0-9]+\.[0-9]+\.[0-9]+$]]></validationRegex>
</requiredProperty>
</requiredProperties>
然后你会获得验证的输入:
[INFO] Using property: groupId = com.nick
Define value for property 'artifactId': abc
Define value for property 'version' 1.0-SNAPSHOT: :
[INFO] Using property: package = com.nick
Define value for property 'pluginId' (should match expression '^[a-zA-Z0-9-]+$'): test-plugin525
Define value for property 'pluginName' (should match expression '^([a-zA-Z_$][a-zA-Z\d_$]*\.)*[a-zA-Z_$][a-zA-Z\d_$]*$'): NickTest101
Define value for property 'pluginPackage' (should match expression '^[a-z][a-z0-9_]*(\.[a-z0-9_]+)+[0-9a-z_]$'): com.nicholas.fun
Define value for property 'pluginProvider': Nicholas DiPiazza
Define value for property 'pluginVersion' (should match expression '^[0-9]+\.[0-9]+\.[0-9]+$'): 1.0
Value does not match the expression, please try again:
注意:它仍然不会正则表达式验证批输入。请参阅:https://issues.apache.org/jira/browse/ARCHETYPE-532
只是连接到你自己的图书馆不是一个好的答案。链接到它,解释为什么它解决了这个问题,使用库提供代码来做到这一点,并放弃你写的代码,这是一个更好的答案。请参阅:[**什么意思是“良好”的自我推销?](http://meta.stackexchange.com/q/182212/200235) – durron597 2015-09-04 13:51:22
这不是自我推销......我没有链接到我自己的图书馆,我链接到我对原问题作者使用的原始图书馆的开源贡献。这是他要求的功能的确切实现,不需要进一步解释。 – mryan 2015-09-05 17:03:15
我同意刚刚添加一个链接是跛脚(虽然绝对不是自我推销,omg大声笑)。我添加了一个工作示例以及显示它正在工作的输出。 – 2017-09-28 14:04:29
不幸的是,不幸的是,没有办法对赋予原型的属性执行验证。最好的做法是根据需要标记一个属性,并提供一个默认值。 – Tome 2013-03-28 14:43:20