作为 Gradle Build 的一部分运行本地 Apache Web Server + Tomcat

Posted

技术标签:

【中文标题】作为 Gradle Build 的一部分运行本地 Apache Web Server + Tomcat【英文标题】:Run local Apache Web Server + Tomcat as part of Gradle Build 【发布时间】:2016-05-03 08:27:16 【问题描述】:

我们当前的环境在 Apache Web 服务器后面有 Tomcat 容器。基本上,Web 服务器具有 ProxyPass 规则,我们使用这些规则来根据上下文根决定路由到哪个 Tomcat 实例。

作为我们本地 gradle 构建的一部分,我们正在使用 Cargo 插件来启动本地 tomcat 容器并将我们的战争部署到它。我还没有找到任何可以让我们启动 Apache WebServer 来测试我们的 apache 配置的东西。

我们的目标是拥有两个 Tomcat 容器,A 和 B,以及一个 Apache WebServer C,这样 C 将 localhost/appA 路由到 tomcat A,将 localhost/appB 路由到 tomcat B。

这一切都是为了运行自动化验收测试,但我还没有找到像 cargo 这样的 gradle 插件可以做到这一点。

谢谢!

【问题讨论】:

这不是您问题的直接解决方案,但它有助于使用 Jenkins CI 服务器等工具使用构建管道概念处理验收测试。在这种情况下,您可以使用各种工具,包括编写 shell 脚本来设置不同的服务器,以及部署到远程服务器安装以运行验收测试。 我目前正在使用 Jenkins,但这不是一个解决方案,因为我也在尝试建立一个本地接受框架。需要驻留在构建的上下文中。 Maven 有这种类型的东西吗?只是好奇。 我现在没有 Tomcat/Apache/Gradle 环境来测试这个,但是你可以使用 process/execute() 使用 Groovy 脚本执行程序,我使用 Inkscape @ 987654322@。也许它对您或尝试回答的人有用 【参考方案1】:

您可以使用 Gradle 部署 Apache http docker 或 haproxy docker http://gitlove.us/p/million12/docker-haproxy 来对您的两个 appA 和 appB Tomcat 容器进行负载平衡。您还可以将 docker 用于 tomcat 容器。您还可以将 Amazon AWS 用于两个 Amazon Linux Tomcat 服务器和一个弹性负载均衡器或一个单独的 haproxy 服务器来实现负载均衡。

【讨论】:

以上是关于作为 Gradle Build 的一部分运行本地 Apache Web Server + Tomcat的主要内容,如果未能解决你的问题,请参考以下文章

android studio怎样配置gradle本地路径

如何在 build.gradle 中定义和调用自定义方法

gradle clean 后 Gradle Build Cache

修改 build.gradle 引用本地jar

重新发布 gradle 工件

gradle实践-build.gradle解析原理