内容简介:在日常开发中,我们项目的开发环境和生产环境以及测试环境往往是不同的,比如:数据库的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架构
获取架构视频资源(后期还会分享不同的优质资源噢)。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- umi 配置多环境打包
- springboot 多环境 开发 打包 配置
- vue-cli3环境变量与分环境打包
- 前端项目之vue分环境打包
- Spring Boot打包部署和环境配置
- iview-admin多环境配置打包
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Shallows
Nicholas Carr / W. W. Norton & Company / 2010-6-15 / USD 26.95
"Is Google making us stupid?" When Nicholas Carr posed that question, in a celebrated Atlantic Monthly cover story, he tapped into a well of anxiety about how the Internet is changing us. He also crys......一起来看看 《The Shallows》 这本书的介绍吧!