【问题标题】:Integrated Tomcat in Maven reload sources?在 Maven 重新加载源中集成 Tomcat?
【发布时间】:2013-11-22 22:48:48
【问题描述】:

我正在为我的 web 应用程序使用 maven 来构建、启动和处理库。所以我运行 tomcat7:run 来开发我的应用程序...但是如果我更改代码,tomcat 不会自动重新加载代码更改,所以我需要重新启动。在 maven 之前,我使用“Sysdeo Eclipse Tomcat Launcher 插件”来运行和创建我的项目。这个插件允许即时查看代码更改,我知道 PLAY!框架做同样的事情。所以可以配置 maven 在运行时重新加载我的代码更改吗?我会改进我的工作进度...

【问题讨论】:

    标签: java maven tomcat


    【解决方案1】:

    可以通过确保 Tomcat context is reloadable 自动重新加载代码更改。 tomcat7:run 目标允许您使用 contextReloadable parameter 启用上下文重新加载,必须在插件的 configuration 部分进行配置:

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <contextReloadable>true</contextReloadable>
            </configuration>
        </plugin>
    

    【讨论】:

    • 那是为了重新加载hole应用程序,但只是代码中的一些更改?更改 logger.debug("Test");到 logger.debug("Test2");?应用程序重新加载不是我想要的,只有当我更改方法签名时...
    • Sysdeo Eclipse Tomcat Launcher 插件在后台执行相同的操作。恐怕这就是不使用 JRebel 或 DCEVM 等高级工具的情况。阅读 Tomcat 文档中关于可重新加载上下文的说明:“如果您希望 Catalina 监视 /WEB-INF/classes/ 和 /WEB-INF/lib 中的类的更改,并在检测到更改时自动重新加载 Web 应用程序,请设置为 true "
    • 是的,网络应用程序的重新加载...但是插件只重新加载类...我可以开发一个网络服务并按下重新加载站点并获得更改而无需重新加载孔网络应用程序。这就是魔法,我想知道 maven 是否可以做到这一点。
    • 好的,我明白了。我对 Sysdeo 插件的看法是错误的——它有一个专用的类加载器。抱歉,我不知道这可以通过 Maven 插件实现。
    • 我想只有 JRebel 才是我要找的……但我需要每年支付 300 美元,这与私人开发者差不多。
    猜你喜欢
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 2012-09-01
    • 1970-01-01
    • 2016-02-04
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多