使用Maven如何debug和热部署

发布于 2021-11-28 12:46:07 字数 508 浏览 682 评论 14

最近尝试将项目用Maven管理,Maven管理能力确实不错,但在开发时,却遇到了一些问题,望大家指点:

1、debug问题:

    我是使用Maven的tomcat插件:tomcat-maven-plugin在eclipse里直接集成tomcat,使用eclipse中Debug模式的maven tomcat:run的方式启动tomcat,但是设置好断点后,可以debug到,但却关联不到源码,我也在Debug configuration里的source标签中关联了源码工程,但还是不行,不知该如何配置。

2、热部署问题:

    使用maven能不能类似ant那样,自定义一个热部署的target,每当关联目录内容发生改变时,便将更新的文件拷贝到目标目录中;另外,我还特意测试了一下,使用maven install后,在target目录会生成一个应用文件夹,一个应用war包,我使用上述方式启动tomcat后,无论手工更新文件夹还是war中的jsp内容,刷新页面时都不生效。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

顾忌 2021-12-02 15:06:11

支持一下,最近也是碰到这两个问题。不知楼主是否已经解决了?求共享哇。

少女净妖师 2021-12-02 15:06:09

多谢。

后知后觉 2021-12-02 15:06:09

还有,要打上jreble

晚风撩人 2021-12-02 15:06:09
export MAVEN_OPTS="${MAVEN_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE"
  1. 新增上面到环境变量;
  2. 正常启动maven,  mvn ... (会多开一个调试端口8000)
  3. 在Eclipse,Debug AS 》Debug configurations > Remote Java Application > 右键 > new > 填好 host, port(就是上面的8000) > Debug

好听的两个字的网名 2021-12-02 15:06:08

其实可以用jreble+maven+tomcat进行热部置的

1.在pom.xml中的 build 添加以下代码:

 <plugins>

        
        <plugin>
            <groupId>org.zeroturnaround</groupId>
            <artifactId>javarebel-maven-plugin</artifactId>
            <version>1.0.5</version>
            <executions>
                <execution>
                    <id>generate-rebel-xml</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
         
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
                <path>/gt</path>
                <port>80</port>
                <uriEncoding>UTF-8</uriEncoding>
            </configuration>
        </plugin>
 
    </plugins>

2. Run As > Run Configurations >  Maven Build > Main > Goals

中添加:tomcat:run

3. run

这样就可以热部置了,但是我用的jahia中的tomcat,用上面的方法行不通

初见你 2021-12-02 15:06:07

没有,最近暂时撂开了,有结果告诉你。

水水月牙 2021-12-02 15:06:06

哥们儿,最后你那个热部署问题解决了吗,怎么解决的??求教~~

做个少女永远怀春 2021-12-02 15:05:47

那你直接配置tomcat的热部署就可以了!

归途 2021-12-02 14:57:06

如果需要我把代码给你贴上来~

緦唸λ蓇 2021-12-02 14:37:43

回复
多谢,如果需要再贴不迟,我自己先试过再说。

疾风者 2021-12-02 13:23:44

我想我理解错了,如果我不使用maven插件的eclipse集成启动tomcat的功能,这一切就都好理解了,仍然使用wtp集成tomcat,那debug的事情就顺理成章了,使用
JavaNewPer
所说的部署方法,直接将应用部署到wtp server对应的tomcat上,而不是maven集成的tomcat上,也就不会出现http://127.0.0.1/manager不存在的问题了,但是热部署的问题还依然存在,我是想实现像ant脚本那样,在eclipse里改完jsp后,会自动更新到tomcat中,而不是在执行一遍maven war:exploded。

蓝颜夕 2021-12-02 10:44:34

jrebel

如此安好 2021-11-29 16:34:10

可以详细说一下实现eclipse debug maven test的操作流程吗?

恋你朝朝暮暮 2021-11-28 17:51:16

回答第一个问题 。

通过远程调试的方式实现eclipse debug maven

test,具体就是在执行test时带上debug参数,如上:

mvn-Dmaven.surefire.debug

test

然后到eclipse上配置远程java调试参数("Run" > "Open Debug Dialog..."选择新建remote java

application),执行debug即可。

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文