在WAR插件的以往版本中,配置并不总是必须的。如果你觉得使用默认设置能很好满足要求,那就继续这么做。但是如果你需要更多的控制,那么你就歹好好看看下面的部分了。
说了这么多,还是举实例会比较直观一点。
比如,我要排除我们的documentedprojectdependency.war下的sampleimage-dependency.jpg来覆盖目标war文件:
…
…
4、Overlays的打包
Overlays采用第一直达者优先的策略(因此,如果一个文件被某一个副本覆盖过,则它不会被另一个副本继续覆盖)。
Overlays的应用步骤依照它们在
默认情况下,该项目源(亦称当前构建)遵循按pom.xml上下文中依赖的先后顺序进行追加(如任何覆盖元素已被应用之前)。当前构建定义了一个没有groupId和artifactId的特殊覆盖方式。如果overlays需要应用第一(直达者优先)原则,那么就只需简单地配置当前构建在这些覆盖之后。
例如,假设groupid为com.example.projects的my-webapp是当前项目的一个依赖,而你需要首先应用它,操作如下:
…
…
注意:在上述情况下,没有配置在
如果你想要执行一项更好更精细的覆盖策略,overlays能通过不同的includes/exclude元素进行多重打包。例如,我想要在当前项目中使用my-webapp的 index.jsp覆盖文件,但是my-webapp的其它文件还是按照常规方式来控制,鉴于此,我们必须要为 my-webapp定义两个覆盖配置:
…
…
5、Overlay全局设置
下面的设置能指定全局性的Overlay和修改所有Overlay的应用方式。
…
…
…
…
…
…
…
…
6、ZIP依赖的覆盖
要想使一个zip依赖作为一个覆盖,你必须在插件配置中指定它。例如你要在Web应用的scripts目录下通过一个zip覆盖注入内容,操作如下:
…
…
三、参考资料
1、http://maven.apache.org/plugins/maven-war-plugin-2.1-alpha-2/overlays.html
2、http://maven.apache.org/plugins/maven-war-plugin/overlays.html