我正在使用Build Helper Maven Plugin来实现regex-property
目标。我想从版本中删除任何限定符,给我一个project.releaseVersion
属性。
假设我的项目正在使用 version 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
。它似乎与正则表达式匹配,但只替换了-
,而不是整个 match。
这是一个错误,看起来是这样,还是我做错了?有人知道解决方法吗?