使用 maven 打包配置文件
2015-11-30 17:16
232 查看
以往项目部署时, 项目的相关配置文件会在服务器上的部署脚本中被替换, 这样导致的问题是: 服务器上的配置文件缺少维护, 并不能被开发人员及时看到,因此在部署时因为配置文件导致的问题频发.
我们希望在编译打包的过程中,将对应的配置文件导入到相应的位置,这样服务器就仅需要做好部署的工作就可以了.
下面以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
我们希望在编译打包的过程中,将对应的配置文件导入到相应的位置,这样服务器就仅需要做好部署的工作就可以了.
下面以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默认的目录结构
但是我们的项目并没有完全遵守,比如
这样导致的结果是编译出错,这就需要借助下面两个插件:
maven-resources-plugin
有了这个插件我们就可以在 build 标签下添加需要加入的resources目录
build-helper-maven-plugin
这个插件可以增加源文件的目录
打包的其他方法:
使用 一个parent 项目让其他项目作为他的module ,
pom如下
注意 packaging 的值是pom
他使用了 modules 标签将其他的项目作为自己的模块
为他执行install 就会自动根据依赖顺序进行打包,可以参考:
http://juvenshun.iteye.com/blog/305865
相关文章推荐
- UIButton之自定义button
- 缓动动画的实现
- kafka的优点
- 第十一周项目1 算法验证3中序线索化二叉树的算法验证
- The following classes could not be instantiated
- 十五周 项目一 验证哈希表实施查找的相关算法
- 14.5.7 Limits on InnoDB Tables InnoDB 表的限制
- mmseg分词算法
- 逆袭指数
- Linux下rpm包x86、i386、i486、i586、i686和x86_64这些后缀含义
- 研究 UIActivityViewController
- 深入分析 Java 中的中文编码问题
- 逆袭指数
- 第十三周项目3 Dijkstra算法的验证
- 关于union all中使用多个order by 子句引起的问题
- facebook Infer环境搭建
- django1.6.11配置静态文件
- HIVE 简介
- 十四周 项目1-4 验证算法
- win10下MySQL安装配置