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

来源:互联网 发布:淘宝潘多拉推荐 编辑:程序博客网 时间:2024/06/12 01:24

场景: 在用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 --生产环境


0 0
原创粉丝点击