随着最后一行代码的输入,IT男罗书全欣喜若狂,程序写完了,可以试着运行代码了。按下run键之后,出现了以下错误:
连接不上,怎么回事呢?跟踪了许久后发现,原来连接数据库的url地址不是开发环境的,导致连接不上。这样的场景在开发过程中是屡见不鲜。造成此问题的原因是源代码和配置项没有分离。配置项是跟着配置环境走的。用测试环境的配置去配开发环境,轻则连接不上,重则出现根据源代码无法解释的结果。
Maven在插件中解决了此问题。解决方案为
- 将需要根据环境变化的配置项从配置文件提出形成一个单独的配置项文件。
文件:default.properties
1: db.jdbc.url=jdbc:mysql://localhost:3306/euphrates
2: db.username=root
3: db.password=test
2.划定需要配置项应用的资源文件范围,并在相应的配置文件中将需要的配置项用通配符表示。
文件:pom.xml
1: <filters>
2: <filter>src/main/filters/default.properties</filter>
3: </filters>
4: <resources>
5: <resource>
6: <directory>src/main/resources</directory>
7: <filtering>true</filtering>
8: </resource>
9: </resources>
配置文件:config.xml
1: <bean id="dataSource"
2: class="org.apache.commons.dbcp.BasicDataSource"
3: destroy-method="close">
4: <property name="driverClassName" value="com.mysql.jdbc.Driver" />
5: <property name="url"
6: value="${db.jdbc.url}" />
7: <property name="username" value="${db.username}" />
8: <property name="password" value="${db.password}" />
9: </bean>
3.运行maven process-resources在process-resources阶段将相应的配置项填入到配置文件中。
通过此方案,有效的将配置项与源代码分开,在开发时节约了开发人员定位配置项引起问题的时间,在部署时部署人员只需修改配置项来适配部署环境,提高了效率。
maven 开发过程系列:
使用maven进行开发过程管理之准备篇
maven开发过程管理之实践一(开发环境与代码隔离 generate-sources)
推荐书籍:
1.maven书籍:Maven实战--徐晓斌
2.21届JOLT大奖--开发过程方法论:持续交付:发布可靠软件的系统方法
参考资料: