Gradle:使用Jetty运行多个webapps

Isr*_*rea 4 jetty war gradle

我想将同一个Gradle项目创建的两个webapp运行到Jetty服务器中.我们称这两个webapps为"ninja"和"warrior".

两个webapp都非常相似,它们仅在应用程序上下文文件(在web.xml文件中引用)和资源上有所不同.

为了部署它们,接受这两个选项:

  • 使用不同的端口:
http://www.example.com:8080/app (ninja webapp)
http://www.example.com:8081/app (warrior webapp)
  • 使用不同的路径:
http://www.example.com:8080/ninja_app
http://www.example.com:8080/warrior_app

有一个或两个Jetty实例应该可以用于这个项目.

这是我的项目布局:

/src/main/java
/src/main/resources
/src/main/webapp (ninja webapp)
/src/main/webapp-warrior

第一个问题:如何使用Gradle创建两个war文件?

第二个问题:如何使用Gradle在Jetty服务器中部署两个war文件?

akh*_*khl 7

请看一下Gretty gradle插件:https://github.com/akhikhl/gretty

它支持多个开箱即用的Web应用程序.它可以帮助您:

  1. 运行web-app项目"inplace",即从编译的类中运行
  2. 将web-app项目作为WAR文件运行
  3. 从文件系统运行非项目WAR文件
  4. 从maven存储库运行非项目WAR文件(当然,首先下载WAR)

此外,您可以:

  • 在任何Java IDE调试器下,在同一Jetty服务器上调试多个Web应用程序.
  • 在同一Jetty服务器上与多个Web应用程序执行集成测试.
  • 使用Jacoco执行代码覆盖 - 包括客户端和服务器端.

有很多文档可以帮助解决所有问题:http://akhikhl.github.io/gretty-doc/

披露:我是Gretty插件的作者.

快乐编码:)