使用project.version和regex的maven2

时间:2012-03-05 09:11:32

标签: maven-2 maven-plugin pom.xml

我想在我的jsp中使用pom.xml中的项目版本值。我设法通过使用过滤器来做到这一点,例如

      <webResources>
        <resource>
          <directory>${basedir}/src/main/webapp</directory>
          <includes>
            <include>login.jsp</include>
          </includes>
          <filtering>true</filtering>
        </resource>
      </webResources>

在我的login.jsp中,我有 $ {版本}

但问题是我需要将我的版本号子串到第二点:例如,如果我的jsp版本是5.0.3,我只想显示5.0。

怎么做?通过使用属性+正则表达式或其他东西?我总是可以通过在jsp页面中使用js来使它工作,但我想找到另一种解决方案。

由于

1 个答案:

答案 0 :(得分:1)

这个问题现在有点老了,但我想我可能会为其他人寻找解决这个问题的方法发布我的解决方案。

我的解决方案使用了Build Helper Plugin

此插件可以轻松地将版本解析并过滤到资源包/属性文件中。

第一步是使用类似以下配置的内容将插件添加到pom

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <phase>initialize</phase>
            <id>parse-version</id>
            <goals>
                <goal>parse-version</goal>
            </goals>
        </execution>
    </executions>
</plugin>

然后,在src/main/resources目录的属性文件中,添加以下属性:

prettyBuildVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}

这将仅使用该版本的前两个数字。

要将此属性公开给JSP,以便可以使用EL访问该属性,请确保在启动时将其添加到ServletContext。 servlet上下文中的属性可以在使用EL的JSP中直接访问。

然后,您可以使用${prettyBuildVersion}在应用程序的任何JSP中包含此属性。