`

maven 使用profile实现多环境参数引用

 
阅读更多

 

 

前言:

 

项目开发需要有多个环境,一般为开发,测试,预发,正式4个环境,通过maven可以实现按不同环境进行打包部署,命令为: 

mvn package -P dev

其中“dev“为环境的变量id, 可以自己定义, 我定义的名称为:dev,qa,pre,prod , 具体在pom.xml中的配置如下:

 

配置写法:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	......

	<profiles>
		<profile>
			<id>dev</id>
			<properties>
				<env>dev</env>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>qa</id>
			<properties>
				<env>qa</env>
			</properties>
		</profile>
		<profile>
			<id>pre</id>
			<properties>
				<env>pre</env>
			</properties>
		</profile>
		<profile>
			<id>prod</id>
			<properties>
				<env>prod</env>
			</properties>
		</profile>
	</profiles>
	
...... 

	<build>
		<filters>
			<filter>config/${env}.properties</filter>
		</filters>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
		</resources>

		......

	</build>
</project>

 

 

上述配置介绍:

 

1.profiles定义了各个环境的变量id

2.filters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值

3.resources中是定义哪些目录下的文件会被配置文件中定义的变量替换,一般我们会把项目的配置文件放在src/main/resources下,像db,bean等,里面用到的变量在打包时就会根据filter中的变量配置替换成固定值

 

 

分享到:
评论

相关推荐

    maven多环境部署pom文件实例

    本文将深入探讨如何使用Maven的POM(Project Object Model)文件实现多环境部署,使得代码能够在开发、测试和生产等不同环境中无缝切换。 首先,让我们理解什么是POM文件。POM是Maven的核心概念,它是一个XML文件,...

    Maven下实现多种环境下的资源配置管理

    Maven的profile机制是实现环境切换的关键。Profile允许我们在一个项目中定义多个配置,每个配置对应一个特定的环境。在`pom.xml`文件中,我们可以创建多个`&lt;profile&gt;`元素,每个元素包含特定环境的配置信息。例如:...

    maven 一键打包

    打包时,通过`-P`参数指定profile,如`mvn clean install -P prod`,将使用`prod`配置进行打包。 ### 配置文件处理 虽然Maven profile可以处理一部分配置差异,但有时仍需手动修改配置文件。为了解决这个问题,可以...

    尚硅谷Maven课程笔记代码资源

    通过使用Maven,开发者可以定义项目的结构、依赖关系和构建过程,只需编写一次配置,就能在不同的环境中一致地构建项目。其核心概念是项目对象模型(Project Object Model,POM),一个XML文件,描述了项目的基本...

    maven window下安装包

    第12章:编写自定义插件/12.4 使用自定义插件/12.4.1 在新建的Maven项目中引用自定义插件 第12章:编写自定义插件/12.4 使用自定义插件/12.4.2 测试自定义插件 第12章:编写自定义插件/12.4 使用自定义插件/12.4.3 ...

    Maven学习手册

    Maven支持配置Profile,根据不同环境(如开发、测试、生产)切换不同的配置参数。 5.2 **聚合与继承** 聚合项目可以管理多个子项目,而继承项目则允许共享公共配置。 5.3 **部署与发布** 使用`mvn deploy`命令将...

    Maven权威指南 很精典的学习教程,比ANT更好用

    通过Maven Profiles实现可移植性 11.2.1. 覆盖一个项目对象模型 11.3. 激活Profile 11.3.1. 激活配置 11.3.2. 通过属性缺失激活 11.4. 外部Profile 11.5. Settings Profile 11.5.1. 全局Settings ...

    maven-archetype-3.1.2-source-release.zip

    1. profile:Maven支持多环境配置,通过标签定义不同的环境变量和构建行为。 2. settings.xml:个人的Maven配置文件,包括仓库地址、镜像设置、用户属性等,可以覆盖全局配置。 六、总结 maven-archetype-3.1.2-...

    maven web pom文件常用配置

    `&lt;properties&gt;`可以定义项目特有的属性,这些属性可以在pom.xml的其他地方或者构建脚本中引用,实现参数化配置。 `&lt;profiles&gt;`允许定义不同的构建环境,比如开发环境和生产环境的差异配置。每个profile包含一组特定...

    maven2用户手册

    2. **环境变量设置**: 安装完成后,需要设置`Maven_HOME`环境变量,并将其添加到`PATH`中,以便在命令行中直接使用`mvn`命令。 3. **配置settings.xml**: Maven的全局配置文件`settings.xml`通常位于`Maven_HOME/...

    agreement 项目maven本地库

    `agreement`项目可能使用了Maven的profile功能,不同环境(如开发、测试、生产)可以通过激活不同的profile来改变依赖的版本或配置。 8. 离线模式: 在没有网络的情况下,Maven的离线模式(`-o`或`--offline`参数...

    Maven学习笔记

    例如,开发环境和生产环境可能有不同的配置参数,可以通过profile来区分。 ** Maven的聚合项目与继承 ** - **聚合项目 (Aggregation)**: 一个POM可以聚合多个子项目,统一管理它们的构建过程。 - **继承 ...

    Hudson Maven generate report

    如果对M2的概念不熟悉,可以参考Maven官方网站获取更多信息。\n2. 安装Hudson组件,详情可参考Hudson官方网站。\n\n**主要组件**\n- `setting.xml`:这是Maven的全局配置文件,定义了全局变量、引用和资源位置。它...

    maven 3.6.1文件下次及配置修改

    1. **`settings.xml`** - Maven 的个人配置文件,通常位于 `~/.m2/settings.xml`(Unix/Linux)或 `%USERPROFILE%\.m2\settings.xml`(Windows)。它可以设置本地仓库位置、代理服务器、镜像配置、服务器认证等。 2...

    maven私服(nexus)配置(setting,pom.xml)

    通过Nexus,我们可以创建多个仓库,分别用于存放公共依赖、内部项目和第三方库,从而实现对依赖的高效管理和控制。 **二、配置settings.xml** 1. **添加服务器ID**:在`settings.xml`的`servers`节点下,创建一个新...

    Maven settings.xml配置理解

    此文件是Maven运行时的默认配置,可以覆盖`pom.xml`中的部分配置,为用户提供个性化的Maven环境。 1. **本地仓库**:在`settings.xml`中,`localRepository`元素定义了Maven的本地仓库路径,用于存放项目构建过程中...

Global site tag (gtag.js) - Google Analytics