内容简介:在日常开发中,我们项目的开发环境和生产环境以及测试环境往往是不同的,比如:数据库的url等。在项目上生产环境时,就需要修改这些参数,给开发造成不便。 为了解决该问题,Maven 2.0引入了构建配置文件的概念(build profiles)。假如你的生产环境和开发环境所需环境配置不同,生产环境配置文件是它可以在每个项目的
在日常开发中,我们项目的开发环境和生产环境以及测试环境往往是不同的,比如:数据库的url等。在项目上生产环境时,就需要修改这些参数,给开发造成不便。 为了解决该问题,Maven 2.0引入了构建配置文件的概念(build profiles)。
它能干什么呢?
假如你的生产环境和开发环境所需环境配置不同,生产环境配置文件是 pro.properties ,开发环境配置文件是 dev.properties ,那么用maven profile , 你可以实现打包开发环境jar包的时候只将 dev.properties 打包并使用,生产环境打包同理。
在哪里声明呢?
它可以在每个项目的 pom.xml 文件中声明,也可以在maven的用户 setting.xml 下声明,也可以在maven全局环境下设置 setting.xml ,详情如下。
1. Per Project
Defined in the POM itself ( pom.xml ).
2. Per User
Defined in theMaven-settings ( %USER_HOME%/.m2/settings.xml )
3. Global
Defined in the global Maven-settings (${maven.home}/conf/settings.xml)
4. Profile descriptor
不支持3.0,详情请看: cwiki.apache.org/MAVEN/maven…
虽然有这么多define的方式,但是我们一般使用的是第一种 defined in the pom ,因为不见得每个项目的生产环境都一模一样,当然这个也是因个人情况而异。
实战
1. 项目结构
├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── fantj │ │ └── resources │ │ └── conf │ │ ├── dev │ │ │ └── application.properties │ │ ├── pro │ │ │ └── application.properties │ │ └── test │ │ └── application.properties │ └── test │ └── java 复制代码
2. pom.xml
<profiles>
<profile>
<id>dev</id>
<properties>
<profile.env>dev</profile.env>
</properties>
<activation>
<activeByDefault>dev</activeByDefault>
</activation>
</profile>
<profile>
<id>pro</id>
<properties>
<profile.env>pro</profile.env>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profile.env>test</profile.env>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<excludes>
<exclude>conf/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/conf/${profile.env}</directory>
</resource>
</resources>
</build>
复制代码
3. 三个application.properties
dev/application.properties
env=dev db.url=192.168.0.166 db.username=db-dev db.password=db-dev 复制代码
pro/application.properties
env=pro db.url=47.xxx.xxx.xxx db.username=db-pro db.password=db-pro 复制代码
test/application.properties
env=test db.url=127.0.0.1 db.username=db-test db.password=db-test 复制代码
4. 打包
mvn clean install -P pro 复制代码
可以看到只将 pro/application.properties 进行了编译。
如果你喜欢我的文章,那麻烦请关注我的公众号,公众号重点分析架构师技术,该公众号还处于初始阶段,谢谢大家的支持。
java架构
获取架构视频资源(后期还会分享不同的优质资源噢)。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
从界面到网络空间
(美)海姆 / 金吾伦/刘钢 / 上海科技教育出版社 / 2000-7 / 16.40元
计算机急剧改变了20世纪的生活。今天,我们凭借遍及全球的计算机网络加速了过去以广播、报纸和电视形式进行的交流。思想风驰电掣般在全球翻飞。仅在角落中潜伏着已完善的虚拟实在。在虚拟实在吕,我们能将自己沉浸于感官模拟,不仅对现实世界,也对假想世界。当我们开始在真实世界与虚拟世界之间转换时,迈克尔·海姆问,我们对实在的感觉如何改变?在〈从界面到网络空间〉中,海姆探讨了这一问题,以及信息时代其他哲学问题。他......一起来看看 《从界面到网络空间》 这本书的介绍吧!