Maven
前言
公司项目升级转换成maven项目。包括搭建私服,项目结构升级为maven。
搭建私服
搭建私服目的
主要原因是老项目好多jar包进行过改造编译,还有一些jar不确定版本,有一些第三方jar中央仓库不存在。
- 私服搭建过程
http://blog.csdn.net/zwc0910/article/details/17349111 - 下载nexus
http://nexus.sonatype.rog/downloads - 解压安装、做成服务、设置开机启动
略过 - 私服仓库详解
4.1. 按类型划分
4.2. 按内容划分nexus里可以配置3种类型的仓库,分别是proxy、hosted、group proxy是远程仓库:的代理(代表中央仓库) hosted宿主仓库:(公司自己的仓库,可以使deploy发布的也可以是第三方jar自己 上传的jdbc.jar) group组:是仓库的组合,这个才是对用户暴露的地址。
4.3. 总结Snapshots仓库:是用来存放用户deploy的快照版本jar包,这部分的jar包的特点是每次做修 改的时候不用修改gav直接发布会在私服上生成一个带日期的版本jar。依赖项目只需要更新 maven项目就ok了。 Releases仓库:这个仓库用来存放正式版发布项目。修改项目内容不修改gav会报错, 发版失败。
对于还需要经常修改的deploy项目采用快照版能够有效减轻依赖项目忘记删除jar包 更新的错误
- nexus权限配置
配置对于相应仓库的读写权利。付给相应的角色。然后给用户分配角色构建项目
- 代码拷贝:代码、配置文件、前台页面拷贝。(需要注意编码问题maven打包时会检测编码。这是一个大坑)
- 配置jar包:最重要的是配置jar顺序,优先配置一些关联jar(例如 struts-spring.jar) 这个jar会依赖struts2和spring的基础jar。由于jar的依赖是有传递性的这样能减少相应的jar冲突也能减少pom文件的复杂程度。 改造中遇到的坑,spring-security会依赖spring基础jar.发现选择的spring基础jar和security依赖的jar版本有差别,增加不少工作量,同样对于jar冲突的风险明显提高。发现不同版本jar时通常最外层jar覆盖内层jar。
- pom文件一些小问题解决:NO1 发现代码中部分代码例如编码加密等部分依赖jdk中rt.jar
|
|
发现服务器不认分号。只认冒号。只能在开发时和发版时临时修改
NO2 发现老项目中java代码竟然包含非java代码。
导致项目打包时自动忽略这部分代码。
解决方法,强制在打包时不忽略这部分文件
|
|
NO3 采用profile形式分别配置发版配置文件遇到小问题。老项目分了好多properties
配置文件想统一配置文件导致有的文件读不到。解决方法。把所有的配置文件加上
|
|
NO4强制配置文件编码
|
|