I solved this problem recently using the RequireJS urlArgsconfig parameter . I doubt that renaming files containing a timestamp would be feasible, it would complicate the assembly and RequireJS configuration, and most likely would require hacking for development or production. So, in a logical order:
in pom.xml:
<properties>
(...)
<build.version>${maven.build.timestamp}</build.version>
</properties>
in the main JSP file:
<script type="text/javascript">
var require = {
(...)
urlArgs: 'v=${build.version}',
};
</script>
<link rel="stylesheet" type="text/css" href="style.css?v=${build.version}"></link>
<script data-main="app" src="libs/require.js?v=${build.version}"></script>
It is important to define an object require before import require.js in order to make urlArgs work
pom.xml, again:
<resources>
(...)
<resource>
<targetPath>${project.build.directory}/filteredWebapp</targetPath>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</resources>
r.js buildconfig (btw. I use requirejs-maven-plugin to connect Maven and r.js):
({
appDir: '${project.build.directory}/filteredWebapp',
dir: '${project.build.directory}/${project.build.finalName}',
(...)
})
src/main/webapp (.. filteredWebapp), , r.js , . r.js buildconfig src/main/webapp; , maven (.. , r.js, ${build.timestamp})
. , ( , ). "v = ${build.timestamp}" .
, , , . , !