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

有没有人知道如何使用tomcat插件构建一个带有子项目的gradle父项目

庞书
2023-03-14

我正在开发一个带有3个子项目的父java项目。我正在使用gradle作为它的构建工具。我刚开始使用gradle作为我的构建工具。

apply plugin: 'tomcat'

其中定义了以下任务:

TomcatRun:启动一个Tomcat实例,并将分解的web应用程序部署到其中。TomcatRunWar:启动一个Tomcat实例并向其部署WAR。TomcatStop:停止Tomcat实例。TomcatJasper:运行JSP编译器(Jasper)并使用。

我需要运行“tomcatrun”和“tomcatstop”任务。我应该在哪里声明每个任务?我想我应该在存储库{}tomcatRun{....下声明它,但我不确定。我会在那里声明它吗?如果我的端口是8080,我必须声明httpPort吗?我问,因为8080是默认值,而我正在使用默认值?

我必须在依赖项中声明tomcat的类路径(类路径'org.gradle.api.plugins:gradle-tomcat-plugin:0.9.7')。对吧?

对于我要添加到tomcat的每个子项目,是否必须在它们的“project”部分(project(':subproject-a'){dependences{classpath...)中删除它们依赖项中的类路径?

我添加了一个很好的插件:'tomcat',但是当我运行它的时候,我发现“id为'tomcat'的插件找不到。我缺少什么?

在哪里定义tomcat选项?

[tomcatRun, tomcatRunWar]*.contextPath = 'stock-webservice'
[tomcatRun, tomcatRunWar, tomcatStop]*.stopPort = 8081
[tomcatRun, tomcatRunWar, tomcatStop]*.stopKey = 'stopKey'

共有1个答案

贺奕
2023-03-14

您的许多问题应该已经在插件的文档中得到了回答。首先,你提到的任务是由插件提供的。您不需要自己声明它们。运行gradle tasks获取项目可用任务列表。如果为属性提供了默认值,那么您就不需要提供它。Tomcat依赖项被分配给Tomcat配置。您只需从自述文件中复制/粘贴相关代码即可。如果找不到插件,这意味着您没有为BuildScript的类路径声明插件依赖项。同样,您可以从文档中复制/粘贴相关代码。

总的来说,我建议首先阅读Gradle在线文档,以更好地理解该工具。

 类似资料:
  • 我想在intellij idea中创建一个简单的java servlet。 我看到了关于如何这样做的这一页,

  • 我有一个多项目gradle构建,当我运行“gradle war”时,它在每个子项目中构建一个war文件。 我现在希望在根项目中创建一个dist或tar任务,将所有war文件添加到tar中。 如何运行依赖于子项目的特定任务的任务?

  • 多模块项目具有具有以下依赖关系的模块:web- 我在web模块中添加了sping-boo-gradle-plugin: 当SpringBootGradle插件下载旧的hibernate版本时,我在持久性模块中有重复的版本。 形象 我尝试覆盖web模块中的hibernate依赖项,它正在工作: 形象 为什么插件下载旧的Hibernate版本?是否有任何可能排除旧的Hibernate版本从sping-

  • 在命令行中,我需要构建一个没有依赖项的可执行jar。当前的“gradle build”命令给了我一个带有依赖项的jar。 在StackOverflow上找不到这个。如果是重复的问题,指给我看。谢谢。

  • 我有一个多项目的gradle构建,其中一个子项目是应用Artifactory插件(版本4.2.0),并配置contextUrl和resolve repoKey。 它设置一个简单的配置和依赖项,然后有一个复制任务来检索依赖项作为zip文件并将其解压缩到目录中。 然而,当复制任务运行时,我得到下面的错误。我做错了什么?这是Artifactory插件或gradle的问题,还是。。。? 问题似乎与该项目是

  • 您好,我有一个名为a的项目,包含三个模块(核心、移动网络),结构如下: My settings.gradle类似于: 现在已经有了不同的版本,在版本2.0之前,我们提供移动模块,在此之前,我们不想构建“移动”模块。现在我有了1.0、1.1、1.2、2.0、2.1版本,我们在每次提交代码之前测试和检查编译。我们是这样做的: 这样,在2.0之前的版本中,它仍然会构建“移动”模块,这当然会失败。我的问题