防止 EAR maven 插件在打包期间扩展和重新压缩子部署
Prevent the EAR maven plugin from expanding and rezipping subdeployments during packaging
我们已经将旧项目的构建方式从 Eclipse 切换到 Maven,现在我们正在努力缩短构建时间(在 Eclipse 中小于 10 秒,在 Maven 中大于 1 分钟)。
我注意到 EAR 插件扩展然后重新压缩子部署(WAR 和 EJB jar):
[2016-06-07 11:35:52] [DEBUG] Resolving ear modules ...
[2016-06-07 11:35:52] [DEBUG] Resolving ear module[war:com.my-group:MyProj_web]
[2016-06-07 11:35:52] [INFO] Copying artifact [war:com.my-group:MyProj_web:0.0.5-SNAPSHOT] to [MyProj_web.war]
[2016-06-07 11:35:52] [DEBUG] Created a temporary work directory: /home/andrew/ELuna/myproj/project/MyProj_ear/target/temp/MyProj_web
[2016-06-07 11:35:52] [DEBUG] Expanding: /home/andrew/ELuna/myproj/project/MyProj_ear/target/MyProj_ear-default-name/MyProj_web.war into /home/andrew/ELuna/myproj/project/MyProj_ear/target/temp/MyProj_web
[2016-06-07 11:36:08] [DEBUG] expand complete
[2016-06-07 11:36:08] [DEBUG] Zipping module
[2016-06-07 11:36:13] [INFO] Building zip: /home/andrew/ELuna/myproj/project/MyProj_ear/target/MyProj_ear-default-name/MyProj_web.war
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/jsp/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/lib/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/classes/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/classes/com/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/classes/com/my-group/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/classes/com/my-group/lib/
...............................
这种情况下的问题是WAR项目有很多小图标,expanding/zipping花费了太多时间。
问题 1:为什么 EAR maven 插件会这样做?如果它只需要将 MANIFEST.MF 文件添加到 WAR,为什么不简单地添加该条目 to the existing ZIP file(WAR==JAR==ZIP 的文件格式)?
问题 2:这个问题有解决方法吗?
此行为的确切原因似乎是插件的 <skinnyWars>true</skinnyWars>
设置。所以解决方法是不使用它,在这种情况下构建时间会更快一些。
我们已经将旧项目的构建方式从 Eclipse 切换到 Maven,现在我们正在努力缩短构建时间(在 Eclipse 中小于 10 秒,在 Maven 中大于 1 分钟)。
我注意到 EAR 插件扩展然后重新压缩子部署(WAR 和 EJB jar):
[2016-06-07 11:35:52] [DEBUG] Resolving ear modules ...
[2016-06-07 11:35:52] [DEBUG] Resolving ear module[war:com.my-group:MyProj_web]
[2016-06-07 11:35:52] [INFO] Copying artifact [war:com.my-group:MyProj_web:0.0.5-SNAPSHOT] to [MyProj_web.war]
[2016-06-07 11:35:52] [DEBUG] Created a temporary work directory: /home/andrew/ELuna/myproj/project/MyProj_ear/target/temp/MyProj_web
[2016-06-07 11:35:52] [DEBUG] Expanding: /home/andrew/ELuna/myproj/project/MyProj_ear/target/MyProj_ear-default-name/MyProj_web.war into /home/andrew/ELuna/myproj/project/MyProj_ear/target/temp/MyProj_web
[2016-06-07 11:36:08] [DEBUG] expand complete
[2016-06-07 11:36:08] [DEBUG] Zipping module
[2016-06-07 11:36:13] [INFO] Building zip: /home/andrew/ELuna/myproj/project/MyProj_ear/target/MyProj_ear-default-name/MyProj_web.war
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/jsp/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/lib/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/classes/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/classes/com/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/classes/com/my-group/
[2016-06-07 11:36:13] [DEBUG] adding directory WEB-INF/classes/com/my-group/lib/
...............................
这种情况下的问题是WAR项目有很多小图标,expanding/zipping花费了太多时间。
问题 1:为什么 EAR maven 插件会这样做?如果它只需要将 MANIFEST.MF 文件添加到 WAR,为什么不简单地添加该条目 to the existing ZIP file(WAR==JAR==ZIP 的文件格式)? 问题 2:这个问题有解决方法吗?
此行为的确切原因似乎是插件的 <skinnyWars>true</skinnyWars>
设置。所以解决方法是不使用它,在这种情况下构建时间会更快一些。