我们使用maven-3.3.9和maven- war插件来生成我的最后一次war。当修改静态文件时,我们遇到了问题,因为浏览器正在使用缓存的版本。
因此,在引用这些静态文件之后,我们决定不使用查询字符串版本属性。我们的选择是生成静态文件目录,覆盖添加和过滤外部Web资源文档中maven-war-plugin状态的方式,部分覆盖默认的目标目录。
我们是这样做的:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<webResources>
<webResource>
<directory>src/main/webapp/WEB-INF/resources</directory>
<targetPath>WEB-INF/resources/${parsedVersion.majorVersion}${parsedVersion.minorVersion}${parsedVersion.incrementalVersion}${buildNumber}</targetPath>
<filtering>true</filtering>
</webResource>
</webResources>
</configuration>
</plugin>我们还使用了另一个插件来解析项目版本和修改数字,但它们对这个问题并不重要。
问题是,静态文件目录的创建与我们预期的一样正确,但它的内容也是以常规方式创建的,就像我们没有使用webResources指令一样,因此我得到了我的资源内容dir两次。我用我想要的dir获得资源dir,第二个dir中的所有dir也都在资源dir中,作为它的sibbling。如何生成资源dir,就像它现在所做的那样,而不复制它的内容?
我的最后输出如下:
|--- resources
|--- js
|--- css
|--- fonts
|--- js
|--- myoverridendir
|--- js
|--- css
|--- fonts
|--- js发布于 2018-01-12 12:41:42
因为同一个文件夹来自两个资源目录
src/main/webapp (即warSourceDirectory )webResources中的资源。因为您只想要一个副本,一个来自webResources,另一个来自src/main/webapp,需要被排除在外。它可以使用<warSourceExcludes>标记来完成。
例如,假设js是src/main/webapp文件夹中的一个这样的文件夹。可以使用<warSourceExcludes>js/</warSourceExcludes>排除它。
https://stackoverflow.com/questions/43529974
复制相似问题