而不是在Maven构建期间生成随机字符串,您可以使用版本号。这对于每个版本都是不同的,并且适合您的使用情况。
为此,您可以使用maven-war-plugin
的filtering功能。在你的JSP中,声明占位符${project.version}
:
<link rel="stylesheet" type="text/css" href="/css/master.css?cache=${project.version}" media="all"/>
然后,在Maven构建,可以过滤文件和Maven会自动用当前版本替换此占位符。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
如果你真的想生成一个随机字符串,你可以使用maven-antrun-plugin
与以下任务(从this answer拍摄):
<scriptdef name="generateguid" language="javascript">
<attribute name="property" />
<![CDATA[
importClass(java.util.UUID);
project.setProperty(attributes.get("property"), UUID.randomUUID());
]]>
</scriptdef>
<generateguid property="guid1" />
<echo message="${guid1}" />
属性然后guid1
将持有的随机字符串,请务必在插件配置中将exportAntProperties
设置为true
。然后,您可以使用与${guid1}
占位符相同的逻辑(资源过滤),而不是${project.version}
版本号也可以。但是我怎样才能在Maven的任何文件中替换它? –