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

有没有人知道如何使用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上找不到这个。如果是重复的问题,指给我看。谢谢。

  • 我想确定在使用微服务架构时,项目结构的最佳实践是什么。 所有微服务都可以创建为新的maven/gradle项目或子项目/模块。 我认为应该考虑依赖继承、项目存储库。 由于微服务的性质,任何服务都可以具有不同的技术,但大多数服务仍然可以具有相同的依赖项(例如 spring-boot))。 另一个问题是团队应该获取所有的服务还是只获取一个将要处理的服务?所以知识库的结构也会受到这个结构的影响。

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