您的位置:首页 > 编程语言 > Java开发

关于项目的构建与打包

2015-12-07 18:28 537 查看
在项目的部署当中,难免牵涉到开发环境、测试环境以及生产环境的切换,如果缺失一套良好的项目构建以及部署方案,那么我们很容易因为反复修改配置文件而酿成开发事故,毕竟线上和测试的配置很多不同。所以拥有一套比较良好的项目构建和部署方案是必须的。

目前构建项目是用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语句即可完成项目构建。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 项目构建