首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法让Maven原型requiredProperty validationRegex工作

无法让Maven原型requiredProperty validationRegex工作
EN

Stack Overflow用户
提问于 2021-08-14 13:50:05
回答 1查看 82关注 0票数 1

我有一个原型,我正在尝试添加一个新的requiredProperty,它应该只允许两个可能的值中的一个:"hibernate“和”hibernate-反应性“。在archetype-metadata.xml中,我定义了如下所示的属性:

代码语言:javascript
复制
<requiredProperty key="quarkus_orm_selection">
  <validationRegex><![CDATA[^(hibernate|hibernate-reactive)$]]></validationRegex>
</requiredProperty>

在jshell和其他Java程序中,我已经验证了正则表达式是否正常工作,但是在原型中,当我使用像hibernate-ree这样的值进行测试时,原型没有出错!

我在JShell中证明了正则表达式如下:

代码语言:javascript
复制
jshell> String[] examples = {"hibernate", "hibernate-reactive", "hibernate-re", "hibernate-ree", "testing", "reactive"}
examples ==> String[6] { "hibernate", "hibernate-reactive", "h ... ", "testing", "reactive" }

jshell> Pattern regex = Pattern.compile("^(hibernate|hibernate-reactive)$")
regex ==> ^(hibernate|hibernate-reactive)$

jshell> Arrays.asList(examples).stream().filter(i -> regex.matcher(i).matches()).forEach(System.out::println)
hibernate
hibernate-reactive

有人能告诉我我做错了什么吗?

我正在使用Maven原型插件3.2.0版本

EN

回答 1

Stack Overflow用户

发布于 2022-09-15 10:32:16

据我所知,如果您以交互模式传入属性,则maven原型只会验证reg。

我创建了一个原型--postgenerate.groovy脚本(见下文)

src/main/resources/META-INF/archetype-post-generate.groovy

代码语言:javascript
复制
String ormSelector = request.getProperties().get("quarkus_orm_selection")
def pattern = "^(hibernate|hibernate-reactive)\$" // the \$ is important!
final match = ormSelector.matches(pattern)

if (!match) {
    println "[ERROR] ormSelector: $ormSelector is not valid"
    println "[ERROR] please provide an ormSelector that follows this pattern: '$pattern'"
    throw new RuntimeException("OrmSelector: $ormSelector is not valid")
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68783890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档