maven 插件对我来说工作得很慢。在我的项目中,webapp 文件夹有近 15000 个小文件(图像、jsp、css 等)。当我用 maven 组装它时,它首先将所有文件复制到target/myProject-1.0.0
目录中,然后从中构建myProject-1.0.0.war
文件。复制过程需要 10 分钟,构建.war
需要 2 分钟。
.war
正如我所见,如果文件将直接从 webapp 文件夹中组装,则构建可能会快得多。有可能吗?
maven 插件对我来说工作得很慢。在我的项目中,webapp 文件夹有近 15000 个小文件(图像、jsp、css 等)。当我用 maven 组装它时,它首先将所有文件复制到target/myProject-1.0.0
目录中,然后从中构建myProject-1.0.0.war
文件。复制过程需要 10 分钟,构建.war
需要 2 分钟。
.war
正如我所见,如果文件将直接从 webapp 文件夹中组装,则构建可能会快得多。有可能吗?
在 war 插件的配置部分,使用 warSourceExcludes 排除不需要的文件和目录。在下面的示例中,目录 components 和 node_modules 将被排除在爆炸战争以及最终战争之外。就我而言,这将构建时间从 3 分钟减少到 14 秒。
<configuration>
<warSourceExcludes>
components/**,
node_modules/**
</warSourceExcludes>
</configuration>
我建议您将使用war:inplace
目标maven-war-plugin
与自定义maven-antrun-plugin
任务一起使用。
将war:inplace
在 WAR 源目录中生成 webapp。它将在webapp
.
antrun:run
可以根据您的特殊要求进行定制以创建战争。
这可能会提高性能,因为您拥有的大多数资源文件仍将位于webapp
文件夹中并且不会被复制。
只想提一下,有一个useCache
设置可以显着提高性能(约 3 分钟而不是 12 分钟)。然而,它只适用于开发,而不适用于应该始终进行干净构建的 CI 服务器。