我正在将Build Helper Maven Plugin和regex-property
目标一起使用。我想从一个版本中删除所有限定词,并给我一个project.releaseVersion
属性。
假设我的项目使用的是1.2.3-SNAPSHOT
版。我可以使用以下内容:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>set-project-release-version</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>project.releaseVersion</name>
<value>${project.version}</value>
<regex>-SNAPSHOT</regex>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
当然,现在project.releaseVersion
现在包含1.2.3
。很好。
不幸的是,这不适用于其他非发行版本,例如1.2.3-beta.4
。因此,要获得“发行”版本,我只想删除第一个-
之后的所有内容。以正则表达式的形式,我应该能够匹配-*
并将其替换为空,删除破折号及其后的所有内容,就像我对-SNAPSHOT
所做的那样。所以我尝试了这个:
<regex>-*</regex>
如果我在1.2.3-SNAPSHOT
上尝试,它会给我1.2.3SNAPSHOT
。它看起来与正则表达式匹配,但仅替换了-
,不是整个匹配项。
这是一个错误,还是我做错了?有人知道解决方法吗?