文章目录
在 war 工件勾选 Include in project build
war 工件处勾选 Include in project build,表示在构建项目/模块之后,也会构建 war 工件。
我们知道,如果服务器配置的 deployment 中添加了工件,默认情况下启动服务器后才会去构建工件,如下图所示:
或者你主动去构建工件,如下图所示:
但是在 war 工件处 Include in project build 打勾后,构建项目/模块之后,就会自动构建工件(war 和 war exploded)。
在 war 工件处把 Include in project build 勾选上,表示在构建项目/模块的时候,把构建 war 包的操作也包含在其中,而构建 war 包之前,必须先构建 war exploded 部署包,所以说在 war 工件处把 Include in project build 勾选上,每次构建项目/模块的时候,如果文件有更新,都会更新 war 包和 war exploded 部署包的相关文件。如果还没有生成工件,那么构建项目/模块的时候,会自动构建 war 和 war exploded 工件。
Build Project/Module
如果 Java 文件有变动,resources 目录下的资源文件有变动,执行 Build Project/Module 会更新部署包(含 war 包)、编译输出目录、webapps 目录中的相关文件。webapp 下的静态资源文件有变动,执行 Build Project/Module 也会更新部署包(含 war 包)、webapps 目录中的相关文件。
注:
1.项目的文件没有变动,则不会更新部署包、编译输出目录、webapps 目录下的相关文件。
2.如果服务器没有启动,即使 deployment 添加的是 war 工件,即使 webapps 目录下存在部署包,执行 Build Project 也是不会更新 webapps 目录下的部署包
Rebuild Project/Module
无论项目的文件(静态或动态文件)有没有发生变动,执行 Rebuild Project 都会更新部署包(含 war 包)、编译输出目录、webapps 目录中的相关文件。
执行 Rebuild Project 其实就是重新编译项目,重新构建部署包(war 和 exploded),并且重新解压缩到 webapps 目录下
注意:如果服务器没有启动,即使 deployment 添加的是 war 工件,即使 webapps 目录下存在部署包,执行 Rebuild Project 也是不会更新 webapps 目录下的部署包
在 war exploded 工件勾选 Include in project build
war exploded 工件处勾选 Include in project build,表示在构建项目/模块之后,也会构建 war exploded 工件。
与 war 工件处勾选 Include in project build 的区别是,war exploded 处勾选 Include in project build,在构建项目/模块之后只会构建/更新 war exploded 工件,不会构建/更新 war 工件;而 war 工件处勾选 Include in project build,在构建项目/模块之后,会自动构建/更新 war exploded 和 war 工件,所以 war 工件勾选了 Include in project build,那么 war exploded 工件处勾选 Include in project build 就没有意义了。
只有在 war 工件处未勾选 Include in project build 的情况下,war exploded 处勾选 Include in project build,那么构建项目/模块则只会构建/更新 war exploded 工件。