Maven随记3-profile

  profile允许为特殊的移植或者目的,自定义构建,一般位于pom.xml或者settings.xml中(maven3中已经不再支持profiles.xml这种外部profile)。

  profile标签几乎可以覆盖所有的元素,在设置好profile之后,我们需要将其激活。激活的方式有以下几种:

  一是命令行激活:mvn install -Pprofile -id; 二是在profile中设置<activation/><activeByDefault/>(如果默认为true则自动激活,如果默认false则根据其它条件是否符合来判断是否激活);
三是在settings.xml中根据<activeProfiles/><activeProfile/>profile-id中进行统一激活(要求这个profile-id必须是在settings.xml中所定义)。

  下面根据实际的场景来对profile的应用做进一步的说明。

  场景一:开发环境与生产环境的数据库连接设置不同,如何用profile实现?

  settings.xml与pom.xml配合实现,设置如下:

  <profiles>
    	<profile>
			<id>environment</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<environment.type>pro</environment.type>
				<property1>2</property1>
			</properties>
		</profile>
  ...
<profiles>
		<profile>
			<id>devlopment</id>
			<activation>
				<property>
					<name>environment.type</name>
					<value>dev</value>
				</property>
			</activation>
			<properties>
				<jdbc.driverClassName>oracle.Driver</jdbc.driverClassName>
				<jdbc.url>oracle.URL</jdbc.url>
				<jdbc.name>oracle</jdbc.name>
				<jdbc.password>oracle</jdbc.password>
			</properties>
		</profile>
		<profile>
			<id>production</id>
			<activation>
				<property>
					<name>environment.type</name>
					<value>pro</value>
				</property>
			</activation>
			<properties>
				<jdbc.driverClassName>mysql.Driver</jdbc.driverClassName>
				<jdbc.url>mysql.URL</jdbc.url>
				<jdbc.name>mysql</jdbc.name>
				<jdbc.password>mysql</jdbc.password>
			</properties>
		</profile>
	</profiles>
	<build>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
		</resources>
	</build>

这样可以很容易地转换环境变量的配置,要注意的是build一定要加,这是利用了Maven的Resource Filter功能,从而找到<directory/>下的文件,替代${}占位符的内容。如果此时需要修改dev或者pro,最方便的办法就是直接用命令行覆盖environment.type的值,虽然settings.xml默认的值是pro但如果用:mvn install -Denvironment.type=dev来编译打包,那么最终的值即为dev这一套。

待续。。。

  

  

时间: 2024-10-06 05:31:16

Maven随记3-profile的相关文章

Maven 安装记

java初学者 昨天通m2e插件把maven项目导入eclipse的时候各种bug,看了各家技术博客,决定安装maven好好了解下. 安装maven也是一波三折的,先是看各种安装指导,结果环境变量都没法设置正确,这虽然是个很简单的问题,但是一不小心可能耗掉不小时间. 安装第一步: 下载maven--http://maven.apache.org/download.cgi 安装第二步: 将下载的文件解压,比如路径C:\Program Files\Java\apache-maven-3.2.1. 安

Maven安装与全局profile配置

Maven 3.2 需要 JDK 1.6, Maven 3.0/3.1 需要 JDK 1.5 · 解压. · 环境变量 M2_HOME · M2 = %M2_HOME%\bin 同时也添加到PATH · 可选的: MAVEN_OPTS = -Xms256m -Xmx512m -Dmaven.artifact.threads=3 (多线程下载,默认5) · 当然,也要有JAVA_HOME 运行 mvn –version 测试 有两个settings.xml,跟具体项目或用户无关 官方全局设置:$M

IDEA开发环境MAVEN项目中使用profile来指定环境所遇到的问题

有时候我们会在web.xml中传递参数时指定环境,但这样可能会遇到一些问题,web.xml配置文件如下图所示 可以看到在这里使用了${profiles.activation},这样做本身是没有问题的,当我们使用maven打包时,会按照我们指定的环境对其进行替换,比如替换为dev. 因此我们可以直接用tomcat7:deploy来远程部署项目,用tomcat7:redeploy来重新部署项目,因为它们本质上都是先将项目打包,然后上传到服务器运行. 可是当我们使用tomcat7:run来启动项目时,

Maven随记

1. 如何保持依赖的多个jar保持版本一致 在引入依赖的时候常常需要依赖多个独立的模块, 譬如Spring的content, aop等等, 为了保持版本一致, 可以设置<spring.version>属性, 之后便可以复用该属性, 从而保持多个模块的版本号一致 <properties> <lucene.version>4.10.2</lucene.version> <poi.version>3.9</poi.version> <

集成maven和Spring boot的profile功能

思路:maven支持profile功能,当使用maven profile打包时,可以打包指定目录和指定文件,且可以修改文件中的变量.spring boot也支持profile功能,只要在application.properties文件中指定spring.profiles.active=xxx 即可,其中xxx是一个变量,当maven打包时,修改这个变量即可. 1.配置maven 的profile <!-- 不同环境查找不同配置文件 --> <profiles> <profil

自动化构建工具Maven

目录 简介 Maven的核心概念 1.约定的目录结构 2.POM 3.坐标 4.依赖 5.仓库 6.生命周期 7.继承 8.聚合 Maven插件的设置 统一管理依赖的版本 常用Maven命令 @ 简介 如今我们构建一个项目需要用到很多第三方的类库,一个项目jar包的数量之多往往让我们无法想象,并且jar包之间的关系错综复杂,一个jar包往往又会引用其他jar包,缺少任何一个jar包都会导致项目编译失败. 以往开发项目时,人们往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,

maven的配置和使用

Maven 简介 1.1 Maven 是什么 翻译为"专家","内行" Maven是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.2 为什么使用Maven IDE?Eclipse? 手工操作较多,编译.测试.部署等工作都是独立的,很难一步完成 每个人的IDE配置都不同,很容易出现本地代码换个地方编译就出错 Ant? 没有一个约定的目录结构 必须明确让ant做什么,什么时候做,然后编译,打包 没有生命周期,必须定义目标及其实

Maven在生成环境的使用及其配置说明

1.1 Maven使用 1.1.1 nexus相关信息 Maven nexus地址: http://192.168.210.185:8081/nexus Repositories 仓库主要包含以下: Public Repositories Group(组) 包括了 Releases.Snapshots.3rd party .Central.Sonatype Repository 3rd party Hosted(本地库) 主要用于上传远程仓库没有的jar如:ojdbc-1.6.jar dubbo

Maven+nexus+svn部署打包过程

1.软件版本 编号 软件 版本号 1 系统版本 Centos7 x64 2 Jdk版本 1.8.0_111 3 Jenkins版本 2.20 4 Svn版本 1.7.14 5 Maven 3.3.9 6 Nexus 2.14 7 Jenkins及svn服务器IP 192.168.1.30 2.jdk安装(省略) 3.svn安装(省略) 4.nexus安装(如果已有nexus私服,此处步骤可省略) 官网下载最新的nexus安装包: https://sonatype-download.global.