【问题标题】:eclipse gradle spring mvc tomcat buildeclipse gradle spring mvc tomcat 构建
【发布时间】:2015-06-09 15:22:10
【问题描述】:

我正在学习 Spring 并使用 Marten Deinum 的 Spring Recipes 第 3 版。我刚读到第 4 章,重点介绍 spring mvc。这些例子都很棒,除了本章没有告诉你如何将导入的 gradle spring mvc 项目部署到 tomcat 容器中。关于我应该怎么做的任何想法?通常在部署 EE Java 动态 Web 项目时,您需要定义运行时目标——在我的例子中是 tomcat v7.0。我正在导入项目,由于某种原因没有描述目标。有什么想法吗?

最好的问候, 史蒂夫·曼斯菲尔德

【问题讨论】:

  • 你试过./gradlew clean war吗?可部署的war文件应该在build/libs目录下。
  • 我当然可以将war文件部署到tomcat。我想知道eclipse是否有内置的自动加载tomcat和部署应用程序的方式。通常我会创建一个动态 Web 项目并将 tomcat 定义为运行时目标,然后一切都会自动部署。我的例子是 gradle 构建。有没有类似的方法来使用这些 gradle 构建部署应用程序,还是我必须按照建议提取 war 文件并部署到 tomcat 中?

标签: java eclipse spring spring-mvc tomcat


【解决方案1】:

您可以在 Eclipse 中手动设置目标运行时,方法是右键单击项目 -> 属性 -> 目标运行时 -> 选择运行时。在您的情况下,tomcat v7.0。

我无法在 gradle 中找到一种优雅的方式来做到这一点。我这样做的方法是通过将以下内容添加到您的 build.gradle 文件中,让 gradle 构建文件将其添加到 eclipse 设置中。您还需要使用 eclipse-wtp 插件:

apply plugin: 'eclipse-wtp'    

eclipse.classpath.file {
        withXml { xml ->
            def node = xml.asNode()
            node.appendNode( 'classpathentry', [ kind: 'con', path: 'org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v8.0'])
            node.appendNode( 'classpathentry', [kind: 'con', path: 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/Jdk8'])
        }
    }

其中“Apache Tomcat v8.0”是目标运行时,Jdk8 是项目正在使用的 Eclipse 中安装的 JRE。

这会将容器的条目添加到您的项目 .classpath 文件中。

【讨论】:

  • 我是 gradle 新手。如何进行您上面建议的更改?
  • 您可以在 build.gradle 文件的任何位置添加上面的代码块。
【解决方案2】:

哇...我看了好几个星期才发现这个视频。使用 Eclipse 将 spring-gradle 部署到 tomcat 很容易......一旦你知道如何。观看此视频,它会带您逐步完成。

https://www.youtube.com/watch?v=6LO40oH5abg

感谢大家的帮助

【讨论】:

    【解决方案3】:

    我也搜索了几天这个主题。其实我想解决这个问题的最好方法可能是:使用 gradle 插件 gretty 作为容器来保存你的项目。 您可以简单地添加如下配置:

    apply plugin: 'org.akhikhl.gretty'
    //Gretty
    buildscript {
      repositories {
        jcenter()
      }
    
      dependencies {
        classpath 'org.akhikhl.gretty:gretty:+'
      }
    }
    
    gretty {
      httpPort = 8080
      contextPath = '****'
      servletContainer = 'jetty9'
    }
    

    然后使用任务:jettyRun 启动 web 服务。它应该可以满足您几乎所有的要求,除了您有一些特殊要求(例如同时持有多个项目...)。

    更多信息: 你可以在Eclipse中安装gradle插件并导入你的gradle项目,然后在eclipse中运行任务来启动服务和调试。

    【讨论】:

      猜你喜欢
      • 2013-06-03
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 2018-10-19
      • 2014-05-02
      • 2014-03-14
      相关资源
      最近更新 更多