热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

多模块Maven环境下,如何在eclipse构建J2EE调试环境(热替换)

本文对于eclipse下maven的开发环境有一个不错的整理,至少在网上没有看到相关的文章,可以提高生成效率,统一开发环境。本人或者看到别人经历过多次因环境问题,很影响效率的,环境配置好了,会节约

本文对于eclipse下maven的开发环境有一个不错的整理,至少在网上没有看到相关的文章,可以提高生成效率,统一开发环境。

本人或者看到别人经历过多次因环境问题,很影响效率的,环境配置好了,会节约很多时间,希望此文给你不少帮助。

背景:

1.项目有多个模块组成,如a.war(它依赖b.jar,c.jar,d.jar),各个模块皆为maven工程

2.使用eclipse ee ide版本(3.7)eclipse-jee-indigo-SR2-win32.zip,maven 3.0.4,版本差异不会很大,eclipse已完成m2eclipse插件(插件直接在eclipe market点install即可,装了maven intergration for WTP更好,后面有图片对比)。

3.Tomcat使用外置tomcat,在eclipse里配置即可。

目标:

1.a.war在eclipse下的tomcat启动完成以后,能热替换a.war,b.jar,c.jar..等类的修改(不包括方法签名的变更,如修改方法名,增加减少方法名;以及配置文件变更)

2.项目导出后,能(其实是生成.classpath..settings相关文件)

    2.1自己把项目设置为maven项目,如果是war项目,能自动设置为facet project

    2.2对于war工程,能自动生成部署相关参数

    2.3默认设置编译级别,代码编码(UTF-8),源目录路径等相关设置

注:

1.本人不喜使用远程调试解决问题,这种调试很麻烦,效率不是很高,习惯了可能还好【如使用mvn jetty/tomcat,以调试部署完成后再连接远程端口调试,此问题在于,b.jar的修改,必须install,重启服务器,这样会浪费很多时间在重启服务器上】

2.上述的目标,您可以通过手工解决所有问题,但不如自动来的方便,而且可以使用开发小组形成一个风格

 

方法:

maven配置

个人建议:对于jar工程,创建一个jar-template的maven工程,类型为pom,作为所有jar工程的父工程;同样的,war工程同时创建一个。这样的好处有:

集中管理jar;统一配置jar工程,包括编译级别,目录结构,代码编码….

如果配置完成,只要执行mvn eclipse:clean eclipse:eclipse即可完成对所有工程的配置。(此命令是先删除.project,.classpath..setting相关配置,再生成)

可以通过以下片段完成以上目标(jar,war工程一起说明了,差异很小):

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    4.0.0


    com.xia.biz
    jar-project-template
    1.0.0-SNAPSHOT
    pom
    Module:: Template :: Java Project

      
        UTF-8

      
        3.1.0.RELEASE
        3.1.0.RELEASE
        3.0.7.RELEASE
        1.6.1
        4.1.1.Final
        3.3.0.ga
        4.3.0.Final
        1.6.3
        2.2.8
        4.10
        1.9.0
        1.3.161
        7.6.3.v20120416
        2.21.0
        1.1.0.RELEASE
   

   

     
        src/main/java
        src/test/java


        target/classes
        target/classes

       
           
                src/main/resources
           

       

       
           
                src/test/resources
           

       

       
           
                org.apache.maven.plugins
                maven-compiler-plugin
               

                  
                   1.6
                    1.6

               
                2.5.1
           

                     
           
                org.apache.maven.plugins
                maven-eclipse-plugin
                2.9
               
                    false
                    false
                    UTF-8
                    false
                    true
                    2.0
                   

                               
                        org.eclipse.jdt.core.javabuilder
                        org.eclipse.wst.validation.validationbuilder
                        org.eclipse.m2e.core.maven2Builder

                           org.eclipse.wst.common.project.facet.core.builder
                   

                   

                         
                        org.springframework.ide.eclipse.core.springnature
                        org.eclipse.m2e.core.maven2Nature
                        org.eclipse.jdt.core.javanature
                        org.eclipse.wst.common.modulecore.ModuleCoreNature
                   
                   

                          
                        org.eclipse.jdt.launching.JRE_CONTAINER
                        org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER

                         org.eclipse.wst.common.project.facet.core.nature
                   
                   

                     
                   true
                   
               
           

结果检验

运行mvn eclipse:clean eclipse:eclipse,再刷新工程,你会看到以下截图(以war工程为例):

1.小M出现,表示是一个Maven工程image

2.目录结构:image标准的war工程目录结构,已加入jre的classpath,Maven依赖

   展开maven依赖:开头:image,结尾:image,出现了工程名的依赖,如framework-core,那么,表示,此工程可以热替换。

3.工程属性

image

以下二个截图是没有安装maven integration for WTP(在eclipse martet查询下载)

image

image

如果安装了maven for WTP,那么,展现如简洁很多,如:

image

image

以下会自动创建

 

image

在tomcat的配置中,去掉自动重启,那么除配置的变化 ,以及变更方法签名,那么,都可以即时生效的。

image

说明,myeclipse与eclipse使用的maven插件有差异,可自己调整一下配置即可解决问题(好像是org.eclipse.m2e.->org.eclipse.ide)。

如果您使用mvn eclipse:eclipse不能达到以上目标,建议你建一个工程,叫build-all,pom内容为:



../a
../b

然后使用eclipse的import->exists maven project,eclipse会自动生成相关参数,这样的配置是最准确的。

===========

经过后续几天的测试,发现,最好的方式是:

在POM.xml里按上述配置,再使用m2e自带的功能,import maven project或者 import from scm这二种方式。

本文为作者一一配置调整得出的结论,如您使用后,出现问题,欢迎指正。如能给您还来好处,是我的莫大的荣幸。


推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 突破MIUI14限制,自定义胶囊图标、大图标样式,支持任意APP
    本文介绍了如何突破MIUI14的限制,实现自定义胶囊图标和大图标样式,并支持任意APP。需要一定的动手能力和主题设计师账号权限或者会主题pojie。详细步骤包括应用包名获取、素材制作和封包获取等。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • OpenCV4.5.0+contrib编译流程及解决错误方法
    本文介绍了OpenCV4.5.0+contrib的编译流程,并提供了解决常见错误的方法,包括下载失败和路径修改等。同时提供了相关参考链接。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
author-avatar
红箭777_387
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有