作者:红箭777_387 | 来源:互联网 | 2023-10-13 10:44
本文对于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工程
2.目录结构: 标准的war工程目录结构,已加入jre的classpath,Maven依赖
展开maven依赖:开头: ,结尾: ,出现了工程名的依赖,如framework-core,那么,表示,此工程可以热替换。
3.工程属性
以下二个截图是没有安装maven integration for WTP(在eclipse martet查询下载)
如果安装了maven for WTP,那么,展现如简洁很多,如:
以下会自动创建
在tomcat的配置中,去掉自动重启,那么除配置的变化 ,以及变更方法签名,那么,都可以即时生效的。
说明,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这二种方式。
本文为作者一一配置调整得出的结论,如您使用后,出现问题,欢迎指正。如能给您还来好处,是我的莫大的荣幸。