您的位置:首页 > 其它

Maven 利用Profile属性配置,生成不同环境(生产、测试)下的发布包

2015-05-25 10:10 871 查看
场景: 在用Maven构建的项目中,用install 生成web 端war时,由于生产和测试环境的数据源等配置不同,经常需要修改这些配置文件,生成不同环境下的war包。如果不够细心,可能会导致生产测试环境配置混淆或漏改,从而导致应用无法正常运行。

解决:Maven项目中,通过配置不同 Profile,可以做到在生成war包时,指定profile属性来生成所需要环境下的war包

<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<jdbc.url>jdbc:oracle:thin:@</jdbc.url>
<jdbc.username>CC</jdbc.username>
<jdbc.password>CC</jdbc.password>
<hibernate.hbm2ddl.auto>update</hibernate.hbm2ddl.auto>
<hibernate.dialect>org.hibernate.dialect.Oracle10gDialect</hibernate.dialect>
<hibernate.show_sql>true</hibernate.show_sql>
<hibernate.format_sql>false</hibernate.format_sql>
</properties>
</profile>
<profile>
<id>prod</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<jdbc.url>jdbc:oracle:thin:@/jdbc.url>
<jdbc.username>CC</jdbc.username>
<jdbc.password>CC</jdbc.password>
<hibernate.hbm2ddl.auto>update</hibernate.hbm2ddl.auto>
<hibernate.dialect>org.hibernate.dialect.Oracle10gDialect</hibernate.dialect>
<hibernate.show_sql>true</hibernate.show_sql>
<hibernate.format_sql>false</hibernate.format_sql>
</properties>
</profile>
</profiles>

<buile> 指定<filtering> ,可在datasource配置中想用<profile>下的<properties>属性值
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>

datasource配置中引用pom.xml文件的properties属性
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>

这样,我们在install项目时,通过-P属性来指定不同的profile,
clean install demo -Pdev --开发环境
clean install demo -Pprod --生产环境
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐