WAR使用Maven

时间:2016-02-23 22:22:49

标签: java maven war maven-war-plugin

我的服务器端技术是使用位于同一目录中的两个文件来定义页面,这两个文件具有相同的名称但扩展名不同:一个扩展名为.html,另一个扩展名为.xsp。在这些文件中,编译时构建器生成将由服务器加载和执行的java .class。 在最后的战争中,我想排除.html和.xsp文件,因为它们不是必需的。

问题是:我怎样才能排除具有关联.xsp的.html,同时保持包含没有关联的.xsp的?资源过滤器当前使用文件名模式,但在我的情况下这还不够。有没有办法编写一个自定义过滤器来检查.xsp是否存在,然后指示war插件是否包含.html?

1 个答案:

答案 0 :(得分:0)

我终于成功地尝试了两种解决方案:

  1. 扩展maven-war插件
  2. 对WAR文件进行后处理
  3. 我查看了maven-war-plugin源代码,但几乎不可能扩展,因为一些有趣的方法(例如:收集任务列表)是私有的。结果,我不得不克隆整个项目并注入我的代码。虽然有效,但这并不令人满意,因为我不希望在原始插件发展的过程中保持它。

    后处理实际上要容易得多。我创建了另一个插件,在战争生成之后立即执行。这个插件只是通过复制原始内容减去不需要的文件来创建一个新的临时战争。最后,它取代了原来的战争。从长远来看,这听起来更安全。