【问题标题】:Hot deploy with maven overlay使用 Maven 覆盖进行热部署
【发布时间】:2013-03-09 15:25:49
【问题描述】:

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

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

我在调试模式下使用带有“保存时部署”选项和“应用代码更改”的 Netbeans。两者都不适用于“网络”文件/类。

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

【问题讨论】:

  • 好问题。当“web”和“web-overlay”项目都打开并且正在使用 STS 中的 Tomcat 或 tcServer 运行 webapp 时,在 Windows7 上使用 STS 2.9+ 时,这对我来说是开箱即用的。我认为正是 WTP eclipse 插件专门用来实现叠加魔法。然而,在 LinuxMint 上完全相同的设置不起作用(不做覆盖)。
  • @sbk 我正在使用带有 glassfish 的 netbeans。我愿意改变服务器,但不接受 ide。
  • 公平通话。只是说什么对我有用。

标签: java maven netbeans hotdeploy


【解决方案1】:

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

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

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

【讨论】:

  • 听起来很有趣,我会试试的。 j2ee 对 jetty 的支持如何?我正在使用很多 j2ee 东西(ejbs、托管 bean、jsf 等)
  • 我在 Jetty 上使用了一些,例如JSF,但我没有尝试在那里部署任何 EJB。
  • 这里是另一个问题的链接,提到在 Jetty 上为 EJB 运行 Geronimo:stackoverflow.com/a/9024108/1228454
  • 您知道任何其他支持该 scanTgets 选项或类似选项的应用程序服务器吗?
  • 对不起,我只知道 Jetty 有这个功能。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 2012-11-12
    • 2011-02-14
    • 2010-11-27
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多