赞
踩
以往项目部署时, 项目的相关配置文件会在服务器上的部署脚本中被替换, 这样导致的问题是: 服务器上的配置文件缺少维护, 并不能被开发人员及时看到,因此在部署时因为配置文件导致的问题频发.
我们希望在编译打包的过程中,将对应的配置文件导入到相应的位置,这样服务器就仅需要做好部署的工作就可以了.
下面以web 项目为例
项目下面的env 目录存放环境变量(仅web项目)
dev 代表本地开发环境
qa 代表测试服务器环境
product代表生产服务器环境
具体配置文件如何存放应该根据项目的不同而区别对待
resources 中的配置文件最终被编译打包后放在 WEB-INF/classes中
webinfo 中的配置文件最终被编译打包后在 WEB-INF中
下面介绍一下 maven的 profiles
Web项目的pom 中有这么一段
这段的意思是 不同的profiles参数会设定不同的变量值
既 package.env=dev/qa/product
这个标签代表省缺情况下 使用dev
Ok,这样写完后 就可以根据mvn的profiles 参数而设定了package.env的值
package.env变量的值将在下面这个插件: maven-war-plugins 中使用
Ok <directory> 设定源路径 <targetPath>设置目标路径
该插件在编译时将会把<directory> 中的文件导入到<targetPath> 中去
下面来介绍 maven 的几种常用命令以及 profiles的用法
mvn clean 清理项目生产的临时文件,一般是模块下的target目录
mvn compile 在target目录下编译生成class
mvn package 在 target 目录下打包生成 jar/war等
mvn install 安装到maven仓库中
mvn test 测试命令,或执行src/test/java/下junit的测试用例. (目前没有用到)
profiles 使用时 只需要在上述命令后面 加上 -P[profiles],例如
如果你的操作系统是windows ,并且maven安装配置正确
在CMD中将当前目录移至pom.xml所存在的目录下:
mvn package –Pdev 就可以就将该项目 打包到targert 中并且使用了profiles= dev
在这里 mvn package = mvn package –Pdev
Eclipse 中 pom 上 右键run as -> maven build
还有一个问题需要解决就是maven 的目录结构
上面是maven默认的目录结构
但是我们的项目并没有完全遵守,比如
这样导致的结果是编译出错,这就需要借助下面两个插件:
有了这个插件我们就可以在 build 标签下添加需要加入的resources目录
这个插件可以增加源文件的目录
打包的其他方法:
使用 一个parent 项目让其他项目作为他的module ,
pom如下
注意 packaging 的值是pom
他使用了 modules 标签将其他的项目作为自己的模块
为他执行install 就会自动根据依赖顺序进行打包,可以参考:
http://juvenshun.iteye.com/blog/305865
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。