天天看点

92分布式电商项目 - Maven Profile

在我们平常的 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 端口启动