我使用的是maven-versions-plugin和setProperties目标。我定义了一个ruleset来比较当前的属性版本和包含git分支名称( git标记)的可用版本,并且具有以下格式:
<number>.<number>.<number>-<branch_name>.<number>
例如,如果分支是dev,我希望匹配像1.29.0-dev.5这样的版本,而忽略任何其他标记,比如1.28.0-release.3或1.8.0-prere10010.1。
该规则要求指定要忽略的版本,因此所有非<number>.<number>.<number>-dev.<number>形式的版本都应该被忽略。
我尝试了几个regex,但没有达到预期的结果-所有版本都在有效版本列表中,以便与当前版本进行比较。
<ruleset comparisonMethod="maven"
xmlns="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0
http://mojo.codehaus.org/versions-maven-plugin/xsd/rule-2.0.0.xsd">
<rules>
<rule groupId="com.abc.de" comparisonMethod="maven">
<ignoreVersions>
<ignoreVersion type="regex">(?!^[((\d*)\.(\d*)\.(\d*)\-dev\.(\d*))]$)</ignoreVersion>
<ignoreVersion type="regex">null</ignoreVersion>
</ignoreVersions>
</rule>
</rules>`
你能帮我写正确的正则表达式吗?
发布于 2020-05-10 10:42:04
尝试使用负正向查找,然后捕获字符串的其余部分,以防Maven正在寻找完全匹配:
^(?!\d+\.\d+\.\d+-dev\.\d+).*$ https://stackoverflow.com/questions/61704406
复制相似问题