老工程改造为MAVEN工程(简单改造)

本文详细记录了从原有工程迁移至Maven项目的全过程,包括环境搭建、工程创建、资源拆分、编译环境调整、依赖引入、编码问题解决、启动Jetty等问题,并通过实践案例展示了如何定位和解决在Maven项目中遇到的技术挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先在本地安装maven,本人安装的是 apache-maven-3.0.4-bin.zip 这个,配置环境变量后 M2_HOME E:\test\maven\apache-maven-3.0.4,使用mvn -version 测试。

由于使用的myeclipse6.6,估采用直接插件指向本地安装的mvn路径即可。 在setting文件中添加自己的私服路径。

2.创建maven工程,按照向导一步步执行即可。

3.将原工程的java文件及source文件拆分开了,分别放到src/main/java和src\main\resources,WebRoot下的放到src/main/webapp即可。

需要注意的是将src/main/webapp/WEB-INF 下classes 和 lib 下的文件清空。

4.查看编译环境并修改,导入jdk JRE SYSTEM LIBERARY包。

5.此时的工程会有好多红叉叉,但是不要着急哦,先分析下自己之前工程所使用的框架是什么,我们使用的是ssh,在之前工程中查看包相应ssh的包,在工程的pom.xml中添加依赖,看着依赖一一的被加入,叉叉就越来越少直至没有红叉叉。

6.此时可以使用指令 clean compile 看看编译有没有问题,虽然myeclipse自检的红叉叉的没有了,但是不代表万事大吉,本人就遇到了,字符编码的问题。

[ERROR] \eshoptest\eshopbacklujx\src\main\java\com\sitech\uniinterface\billing\query\IBillingQueryService.java:[1,0] 非法字符: \65279

可以百度的哦,值转换下文件的格式。

7.还遇到一个问题是资源文件没有拷贝全面导致的:

 Error creating bean with name 'accessoriesBaseInfoServiceImpl': Injection of resource fields failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accessoriesBaseInfoDao' defined in file [E:\eshoptest\eshopbacklujx\target\classes\spring\application_accessoriesBaseInfo.xml]: Cannot resolve reference to bean 'hibernateTemplate' while setting bean property 'hibernateTemplate'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in file [E:\eshoptest\eshopbacklujx\target\classes\spring\application_global.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file

开始想着是jar包的问题,但是没有想到,同一个jar包中的其他类是可以用到的,但是部分用不到,就应该不是jar的问题。最终找到了配置文件,所以错误信息还是需要仔细研究的。

8.最郁闷的一个问题是,所有的编译都过了,但是jetty却启不来。索性将其打成war包,在tomcat,weblogic下发布,都遇到了同样的问题,服务启动不起来,卡死在哪里。

后来实在没有办法了,将之前工程的所有jar包把tomcat下的jar包替换了,结果程序起来了,编译确实是没有问题的,但是究竟是什么原因你呢,索性将正常的不正常的包进行了对比,一一排除,最终找到了是这儿包quartz-1.5.2.jar 在作怪,将这个依赖添加后,缺出现了7所说的问题。

9.不对啊,怎么可以这个样子了,那个问题不是解决了嘛?后来还是仔细核对包,发现多出来了 xercesImpl-2.6.2.jar 这个包的缘故,百度了下发现也有类似求助的,也有共享解决方案的。“http://blog.youkuaiyun.com/peachpi/article/details/6868541” ,原来是这个包影响了加载顺序,原来的工程中又没有这个工程,可能是自己之前的依赖的问题,继承依赖。

10.没有显示的依赖 xercesImpl-2.6.2.jar 这个,怎么查啊,最后只好建立了个简单的maven工程,把可能继承这个依赖添加上,把本地仓库已经下载下来的包删除掉,更新依赖,看有没有下载下来,来定位是那个依赖导致的,最后锁定是axis2的一下应用导致的,最后重新依赖版本。问题解决。

11.这个是个纯粹的改造,不涉及设计的哦,体力活儿。

12.有些包是自己公司发布的,在公服上是没有的,私服上也没有,所以还采用了

mvn install:install-file -Dfile=E:/test/maven/repo/wwwframe/wwwframe.jar -DgroupId=com.sitech -DartifactId=wwwframe -Dversion=4.3.0 -Dpackaging=jar 进行包的安装。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值