关于项目的构建与打包
来源:互联网 发布:php array_push 编辑:程序博客网 时间:2024/05/16 23:41
在项目的部署当中,难免牵涉到开发环境、测试环境以及生产环境的切换,如果缺失一套良好的项目构建以及部署方案,那么我们很容易因为反复修改配置文件而酿成开发事故,毕竟线上和测试的配置很多不同。所以拥有一套比较良好的项目构建和部署方案是必须的。
目前构建项目是用Maven来进行的。Maven提供Profile功能来满足项目的可移植性构建的需求。
以下简单说下我的项目的配置。
该工程采用了Maven进行构建,同时采用Spring作为工程框架。在开发到产品上线这个过程中,产品会分别部署在开发环境、测试环境以及生产环境中(当然这是我的相关部署环境,其他项目可以根据自己的需要进行划分)。在这三种环境下,应该拥有自己所属的配置文件。
可移植构建的一个基本思路是让项目运行的过程中选择正确的配置文件进行加载。根据这个基本思路,我们可以让项目构建的时候只包含对应环境的配置文件,比如我们需要构建线上环境的War包,只需要build的时候,让War里面只含有Online文件夹下的配置文件即可,其他的不打包。
在工程目录resource文件夹下,分别建立三个文件夹dev、test以及online,然后放置对应环境的配置文件,配置文件最好以properties作为后缀。
同时,我们在Maven的POM.xml写上我们的配置策略。
<profiles> <profile> <id>test</id> <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>*</include> <include>test/*</include> </includes> <excludes> <exclude>online/*</exclude> <exclude>dev/*</exclude> </excludes> </resource> </resources> </build> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>online</id> <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>*</include> <include>online/*</include> </includes> <excludes> <exclude>test/*</exclude> <exclude>dev/*</exclude> </excludes> </resource> </resources> </build> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>dev</id> <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>*</include> <include>dev/*</include> </includes> <excludes> <exclude>test/*</exclude> <exclude>online/*</exclude> </excludes> </resource> </resources> </build> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> </profiles>
这样配置后,每次在eclipse的工程右键进行Maven Build时,进行相应模式的Build,即可构建对应环境的工程包。至于不同环境的构建命令可到Run——Maven-build进行配置。如下图:
-P后面对应的是之前在POM.xml文件上写的profile的id。
由于项目的框架采用Spring作为框架,Spring在初始化的时候会自动加载application.xml配置文件(当然这个配置文件可以在WEB-INF/web.xml进行配置管理)
在这里我们可以这样配置相关的文件加载:
至此,可移植性项目构建已经完成。之后只要对着项目点击右键选择相对应的maven-build语句即可完成项目构建。
- 关于项目的构建与打包
- 关于jenkins 构建打包的技巧
- ant构建打包项目
- [django]项目打包构建
- 项目构建打包坑
- [django]项目打包构建
- Webpack构建基本的React+ES6项目 --- 图片的路径与打包
- Webpack构建基本的React+ES6项目 --- 图片的路径与打包
- 关于 maven 项目的构建
- Webpack构建项目时将vendor与app目录下的文件分开打包
- Android如实现项目自动化构建与APK打包列表
- 构建cocos2dx项目和打包
- IntelliJ IDEA 将 Maven 构建的 Java 项目打包
- IntelliJ IDEA 将 Maven 构建的 Java 项目打包
- IntelliJ IDEA 将 Maven 构建的 Java 项目打包
- 关于Cordova项目的打包配置
- 关于struts2+spring3+jpa项目的构建
- 关于Android Studio项目的Gradle构建
- JSTL标签库核心标签C标签的使用
- 交换button中图片和按钮的位置
- HTML 颜色
- javascript正则表达式
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- 关于项目的构建与打包
- UITextField总结
- ios字典与数组转JSon
- HDOJ 5311 Hidden String(枚举)
- 使用git 新建分支以及管理分支
- python格式转换
- 仿QQ空间用一个tableview显示多种自定义cell
- 数据持久化-plist
- HTML 颜色名