使用 maven 打包配置文件

来源:互联网 发布:彩票篮球分析软件 编辑:程序博客网 时间:2024/06/05 21:07

以往项目部署时, 项目的相关配置文件会在服务器上的部署脚本中被替换, 这样导致的问题是: 服务器上的配置文件缺少维护, 并不能被开发人员及时看到,因此在部署时因为配置文件导致的问题频发.

我们希望在编译打包的过程中,将对应的配置文件导入到相应的位置,这样服务器就仅需要做好部署的工作就可以了.

 

下面以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

 




0 0
原创粉丝点击