当前位置: 首页 > 知识库问答 >
问题:

Gradle:使用Jetty运行多个webapps

袁奇逸
2023-03-14

这两个webapp非常相似,它们只是在应用程序上下文文件(在web.xml文件中引用)和资源方面不同。

为了部署它们,可以接受以下两个选项:

  • 使用不同的端口:
http://www.example.com:8080/app (ninja webapp)
http://www.example.com:8081/app (warrior webapp)
    null
http://www.example.com:8080/ninja_app
http://www.example.com:8080/warrior_app
/src/main/java
/src/main/resources
/src/main/webapp (ninja webapp)
/src/main/webapp-warrior

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

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

共有1个答案

罗均
2023-03-14

如果您不想创建两个不同的项目,您可能希望使用来自gradle的apply from:特性创建两个不同的gradle配置文件。

对于每个webapp实例,ninja和warrior,您必须创建一个脚本文件,其中包含配置文件特定的所有信息。

在这些新的gradle构建文件ninja-profile.gradle和warrior-profile.gradle中,您可以设置不同于ninja和warrior的特定配置,在本例中可以是:

  1. 资源文件夹:您可以为每个实例创建一个单独的资源文件夹
  2. jetty配置:如果要运行两个webapps的两个不同实例,则每个实例都在一个单独的jetty实例中。

在您的“主”构建文件中,您定义了所有配置文件和构建需求所共有的所有内容,此外,您还添加了以下一行:

apply from: "${profile}-profile.gradle"

运行Gradle时,可以使用-p选项传递配置文件的名称:

$ gradle -Pprofile=ninja tasks 
$ gradle -Pprofile=warrior tasks
 类似资料:
  • 我有一个Gradle项目,我正试图用它来运行Jetty。我的文件如下所示。 建筑格拉德尔 我试图从命令行运行这个项目,我使用的命令是: > 应构建项目,并输出以下内容: Jetty插件已被弃用,计划在Gradle 4.0中删除。考虑使用Gretty(https://github.com/akhikhl/gretty)而不是插件。在build_6xw4u3pr68h02k136x2vqowd。运行(

  • 问题内容: 因此,我想做的是将Maven插件jetty配置为在不同的端口和不同的应用程序上运行多个(在我的情况下为两个)jetty服务器实例。 所以,我想要一个类似的东西: 我想用一个命令执行此操作:mvn jetty:run当然这意味着我必须在pom.xml中对其进行配置 我已经有两个不同的jetty配置文件:jettyA.xml和jettyB.xml,其中定义了不同的连接器。问题是我无法弄清楚

  • 我知道怎么说 但如何指定多个? 这似乎只是随机运行一个测试。 这告诉我 在根项目“MyProject”中找不到任务“MyPackage.Model.ModelTest”。 我读了很多手册和教程(和一些SO帖子),但没有找到明确的答案。但是我看到有人通过-tests“somePackage.*”作为参数,所以我想空格周围的引号可能会有帮助。 这不会很快失败,但不幸的是,它只运行列表中的第一个测试。

  • 这段代码每次执行一个运行任务 如何一次从一个jar文件运行多个主类(并行)

  • 我回到了JDK8和Jetty和SPDY,我看到现在Jetty 9.2支持ALPN协议而不是NPN协议(参见我的问题,如何在JDK8上运行Jetty和SPDY?)。所以我设置了: 但现在我有个例外: 我使用和jetty 9.2.2.v20140723。

  • 我正在尝试将我的项目更新到Java 11-openjdk_11.0.2(目前在Java 8上)。我将与Jetty版本9.4.8.v20171121一起使用。 我可以在Java 8上毫无问题地运行该项目,但是如果我切换到Java 11,我会得到以下错误消息: