加速maven war插件

时间:2012-10-10 11:29:19

标签: performance maven maven-war-plugin

maven插件对我来说非常慢。在我的项目中,webapp文件夹有近15000个小文件(图像,jsp,css等)。当我用maven组装它时,它首先将所有文件复制到target/myProject-1.0.0目录,然后从中构建myProject-1.0.0.war文件。复制过程需要10分钟,构建.war需要2分钟。

正如我所看到的,如果直接从webapp文件夹汇编.war文件,构建速度可能会快得多。有可能吗?

3 个答案:

答案 0 :(得分:4)

我建议您使用war:inplace目标maven-war-plugin以及自定义maven-antrun-plugin任务。

war:inplace将在WAR源目录中生成webapp。它将在webapp下创建所有必要的额外文件夹。

可以根据您的特殊要求定制antrun:run来制造战争。

这可能会提高性能,因为您拥有的大多数资源文件仍然位于webapp文件夹中,而不会被复制。

答案 1 :(得分:4)

只是想提一下useCache设置可以显着提高性能(约3分钟而不是12分钟)。但是,它仅适用于开发,而不适用于应始终执行干净构建的CI服务器。

答案 2 :(得分:3)

在war插件的配置部分中,使用warSourceExcludes排除不需要的文件和目录。在下面的示例中,目录组件和node_modules将从爆炸战争以及最终战争中排除。在我的情况下,这将构建时间从3分钟减少到14秒。

        <configuration>
              <warSourceExcludes>
                components/**,
                node_modules/**
              </warSourceExcludes>
        </configuration>