使用maven覆盖进行热部署

时间:2013-03-20 13:38:14

标签: java maven netbeans hotdeploy

因此,我正在尝试使用netbeans进行热部署以使用我的maven项目。我有两个战争包。一个我称之为“网络”,另一个我称之为“自定义网络”。我在“web”上覆盖(使用maven overlay插件)“custom-web”。我有几个“自定义网络”项目,每个客户一个。所以maven叠加层非常适合我的需求。

问题是我真的非常希望在两个项目上都能获得类和静态文件(.js,.css)的热部署。但是热部署仅适用于“自定义网络”项目,如果我修改“web”上的类或静态文件,则更改不会反映在服务器上,除非我手动重建“web”并重新部署整个申请可能需要3到5分钟,严重阻碍了我的发展。

我在Netbeans中使用“部署保存”选项,并在调试模式下使用“应用代码更改”。两者都不适用于“web”文件/类。

我正在寻找解决方案。我的自定义Web项目主要有静态文件,但它也可以有类。它不一定需要使用叠加,但我无法找出任何其他方法来正确添加两个项目而不使用叠加。

2 个答案:

答案 0 :(得分:1)

不确定这是否是一个选项,但在这种情况下使用Jetty非常有用。使用jetty:run目标,您可以将Jetty指向要查看的源目录(跨项目),Jetty将始终从那里提供文件。

在您的情况下,您可以将Jetty的scanTargets指向您的源目录,Jetty将从那里提供文件。

有关配置选项和示例,请参阅http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-run-goal

答案 1 :(得分:0)

Maven个人资料(http://maven.apache.org/guides/introduction/introduction-to-profiles.html)可能是一个解决方案。您可以使用具有开发配置和“部署保存”内容的“web”项目创建一个“dev”。

在netbeans中,您可以使用配置文件映射配置:http://wiki.netbeans.org/MavenBestPractices#Configurations

最后使用自定义项目和CI服务器的覆盖选项。