您的位置:首页 > 其它

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

2013-04-01 22:06 176 查看
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.csdn.net/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 进行包的安装。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: