2012-03-05 46 views
1

我想在我的jsp中使用來自pom.xml的項目版本值。我設法通過使用過濾器來做到這一點,對於爲例maven2使用project.version和正則表達式

 <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

這個問題現在是有點老了,但我想我可能會發布反正我的解決方案爲別人尋找一個解決這個問題。

我的解決方案利用了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上啓動。使用EL可以在JSP中直接訪問servlet上下文中的屬性。

然後,您可以使用${prettyBuildVersion}將此屬性包含在應用程序中的任何JSP中。