92分布式电商项目 - Maven Profile
2023-09-11 14:15:41 时间
在我们平常的 java 开发中,会经常使用到很多配制文件(xxx.properties,xxx.xml),而当我们在本地开发(dev),测试环境测试(test),线上生产使用(product)时,需要不停的去修改这些配制文件,次数一多,相当麻烦。现在,利用 maven 的 filter 和 profile 功能,我们可实现在编译阶段简单的指定一个参数就能切换配制,提高效率,还不容易出错.
profile 可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个 profile,然后每个 profile 对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。
在我们的项目中举个例子:
修改 pinyougou-page-web 的 pom.xml
<properties>
<port>9105</port>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 指定端口 -->
<port>${port}</port>
<!-- 请求路径 -->
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
运行 tomcat7:run ,发现运行结果是一样的,因为 port 是变量,而变量值是定义为 9105。这其实就是之前学习的 maven 的变量。
如果这个端口在开发时使用 9105,如果在生产环境(或其他环境)为 9205 呢?如何解决值的动态切换呢?
这时修改 pom.xml,增加 profile 定义
<profiles>
<profile>
<id>dev</id>
<properties>
<port>9105</port>
</properties>
<profile>
<id>pro</id>
<properties>
<port>9205</port>
</properties>
</profile>
</profiles>
执行命令 tomcat7:run -P pro 发现以 9205 端口启动
执行命令 tomcat7:run -P dev 发现以 9105 端口启动
-P 后边跟的是 profile 的 id
如果我们只执行命令 tomcat7:run ,也是以 9105 启动,因为我们一开始定义的变量值就是9105,就是在不指定 profileID 时的默认值.
相关文章
- IDEA Maven项目 编译的问题
- springmvc+mybatis+maven项目框架搭建
- 【Maven】Maven之使用maven快照版本机制进行多项目依赖开发
- ava Maven项目之Nexus私服搭建和版本管理应用
- 实例!使用Idea创建SSM框架的Maven项目
- IDEA热部署(二)---jetty插件启动maven项目
- 解决maven项目Cannot change version of project facet Dynamic web module to 3.0/3.1
- 使用spring 4.0 + maven 构建超简单的web项目
- Maven常用插件配置和使用
- Maven - 在CentOS7.5安装Maven
- maven 属性以及灵活构建
- IntellJ idea maven打包——项目带有第三方jar包
- 【收藏】使用命令行创建maven web项目
- SAP Hybris安装包里自带的Maven和Gradle
- Maven项目怎样引用其他项目/或者jar包
- Maven自定义上传第三方包到3rd party(第三方无依赖jar和本地扩展类加入maven统一管理)
- maven 导入外来jar包
- spring boot & maven 多模块 ---心得
- java的maven项目(三)私服的搭建(windows版)
- 使用 maven:archetype 创建JSF2 + EJB3.1 + JPA2项目骨架并在JBoss WildFly 8.1上部署
- Jenkins自动触发构建maven多模块项目
- 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)
- maven的简单理解
- Jenkins构建Maven项目
- Maven 构建 & 项目测试
- 简化基于Maven的Scala项目创建详解