Maven-War-Plugin将Overriden目录复制到最终工件



我们正在将maven-3.3.9与Maven-War-Plugin一起生成我的最后战争。由于浏览器正在使用缓存版本,因此我们在更改静态文件时遇到了问题。

因此,我们决定在引用这些静态文件后不使用查询字符串版本属性。我们的选择是生成我们的静态文件目录,以添加和过滤外部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也都在资源中,作为它的发光。我该如何生成资源目前正在执行的目的而不复制其内容?

我的最终输出是以下类似:

|--- resources
    |--- js
    |--- css
    |--- fonts
    |--- js
    |--- myoverridendir
        |--- js
        |--- css
        |--- fonts
        |--- js

,因为同一文件夹来自两个资源目录

  1. 通过src/main/webapp,因为它是warSourceDirectory
  2. 它被指定为webResources中的资源

您只需要一个副本,即来自webResources的副本,需要排除来自src/main/webapp的副本。可以使用<warSourceExcludes>标签完成。

例如,我们说jssrc/main/webapp文件夹中的一个这样的文件夹。它可以使用<warSourceExcludes>js/</warSourceExcludes>

排除在外

最新更新