【问题标题】:how to make changes on a project and running it through IDE without deploying it on server如何对项目进行更改并通过 IDE 运行它而不将其部署在服务器上
【发布时间】:2011-08-08 10:24:46
【问题描述】:

我想知道如何更改我的代码并直接从我的 Eclipse IDE 在服务器上运行它,而不是每次都将我的项目转换为 war 文件并将其部署在服务器上。

我不想看到我的更改仅通过将其转换为 war 文件并每次在服务器上部署它来反映.. 我可以在进行一些更改后直接通过我的 eclipse IDE 即时查看它们..

请帮助我,我不知道在谷歌上搜索什么。所以寻求“SO”帮助。

提前致谢。

PS:对不起我的错!我应该提供更多信息......我正在研究基于 Spring Hibernate 的项目......它只有 java 文件

【问题讨论】:

  • 我基本上想在调试模式下打开我的代码,这样我就可以通过在服务器上运行它来进行更改并立即查看

标签: java eclipse tomcat war


【解决方案1】:

您可以使用 Eclipse-WTP 插件来处理您的 Web 项目 (http://www.eclipse.org/webtools)。使用此插件,您可以创建可以部署在指定(Tomcat)服务器上的“动态 Web 项目”。

如果您使用 maven 并且您的项目结构类似于 maven-webapp(webapp-archetype),您还可以使用 m2eclipse-plugin 导入您的 maven-project 并在服务器上运行。

【讨论】:

    【解决方案2】:

    根据 sjr 的回答,wicket quickstart 原型包含这样一个主类。这里是:

    Start.java (HEAD)

    它没有任何特定的检票口,它可用于运行任何 Java webapp 项目

    复制到 src/test/java 并作为主类执行

    您的 pom 中需要以下依赖项:

    <dependency>
        <groupId>org.eclipse.jetty.aggregate</groupId>
        <artifactId>jetty-all-server</artifactId>
        <version>7.3.0.v20110203</version>
        <scope>provided</scope>
    </dependency>
    

    【讨论】:

      【解决方案3】:

      有很多不同的方法可以做到这一点,但这里有一种方法可能适合你(很难说,因为你没有具体说明你的容器环境):

      在新 Java 应用程序的 main 方法中:

      • 创建一个 servlet 容器实例(例如 Jetty 或 Tomcat)
      • 使用 servlet 容器的 API 调用注册应用程序的 servlet
      • 为您的静态资源创建相关的 URL 映射
      • 启动 HTTP 服务器

      然后,在调试模式下运行此应用程序。现在,您在 Eclipse 中运行了一个迷你环境。

      【讨论】:

      • 谢谢sjr ...但是我是新手,无法理解您提到的步骤...您能否详细说明要点..如果您能告诉我,将会很有帮助一步一步告诉我该怎么做.. 我还看到了另一个链接 stackoverflow.com/questions/3723743/… 你能告诉我最好和最简单的方法吗
      【解决方案4】:

      一切都无法即时反映

      • 您可以随时更改图像、javascript 文件、css 等文件。
      • 有些文件是在上下文初始化时操作的,比如(web.xml、spring conf 文件和其他一些 conf 文件)所以,你不能即时更改它们,但你可以更改这些,重启服务器看看效果。

      • 一些 Servlet 和 Java 代码需要编译,如果它们没有被类加载器加载,你可以随时更改它们(你不能 100% 确定)

      【讨论】:

        【解决方案5】:

        您可以通过 WTP eclipse 插件使用 HotSwap 技术来查看更改代码的效果,而无需将整个应用程序重新部署到应用程序服务器。这个link 有一个关于如何使用 WTP eclipse 插件设置 tomcat 热部署的教程。

        但是这种HotSwap技术有很多限制,例如,它只允许改变方法体而不允许添加/删除类、字段、构造函数、方法、注解等。以及修改XML文件和属性文件(例如 web.xml , faces-config.xml )不能立即反映。

        JRebel 可以克服这些限制,但它不是免费的。它讨论了其他免费/开源替代方案的限制here

        【讨论】:

          猜你喜欢
          • 2011-07-28
          • 1970-01-01
          • 2012-08-29
          • 2013-12-06
          • 1970-01-01
          • 2011-07-16
          • 2013-10-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多