如何在maven打包期间动态更新tiles.xml中的常量值?

时间:2012-08-31 18:48:24

标签: spring-mvc maven-2 tiles maven-war-plugin

我是Spring MVC,Tiles和Maven框架的新手,我希望有人能引导我找到更新平台相关属性的更好实践的正确方向。我有一个tiles.xml,它定义了一个带有JavaScript / CSS导入列表的JSP路径。

<definition name="abc" extends="base.definition">
  <put-attribute name="imports" value="/WEB-INF/jsp/imports.jsp" /> 
</definition>

在部署期间,我想切换到导入缩小版本的JavaScript / CSS文件,这些文件列在不同的JSP文件中。

<put-attribute name="imports" value="/WEB-INF/jsp/importsMinified.jsp" />

我假设在mvn部署生命周期之一中切换资源或重写此tiles.xml或某种属性文件的内容,这些属性文件定义了特定于环境的定义。但是,我找不到完成这项任务的好例子。如果有人遇到这种情况,你能告诉我什么是更好的解决方案来改变进口?我也不确定分成两个JSP文件是否更好。

谢谢,

1 个答案:

答案 0 :(得分:1)

我不知道有一个插件会专门为Tiles执行此操作,但您可以随时使用maven过滤文件以获取替换变量。

例如......

<强>的pom.xml

<build>
  <resources>
    <resource>
      <directory>src/main/webapp/WEB-INF</directory>
      <filtering>true</filtering>
      <includes>
        <include>**/tiles.xml</include>
      </includes>
    </resource>
  </resources>
</build>

<强> tiles.xml

<definition name="abc" extends="base.definition">
  <put-attribute name="imports" value="/WEB-INF/jsp/${importsjsp}" /> 
</definition>

从这里您可以选择如何管理imports.path属性:

  • 在命令行mvn -Dimportsjsp=importsMinified.jsp package
  • 上传递属性
  • profiles节添加到您的pom中,该节具有不同的值。调用maven明确地通过-P开关以选择您的个人资料,或满足激活要求。