Maven中的profile标签简介
来源:互联网 发布:java返回值前面加泛型 编辑:程序博客网 时间:2024/06/18 14:56
使用maven管理项目有一个好处是就是可以针对不同的环境使用不同的编译打包设置,方便了多环境下的打包部署,一般我们开发项目都会有至少开发
环境和正式环境两个,针对这两个环境的配置信息也会有所不同,比如数据库的配置等。我们可以使用maven的profile定义来进行区分,比如我们在项目的pom文件中定义如下片段:
写道
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>cc.mzone</groupId>
<artifactId>myjar</artifactId>
<version>0.1</version>
<packaging>jar</packaging>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
<properties>
<jdbc.url>jdbc:mysql://localhost:3306/abc</jdbc.url>
<jdbc.username>root</jdbc.username>
<jdbc.password>root</jdbc.password>
</properties>
<profiles>
<profile>
<id>product</id>
<properties>
<jdbc.url>jdbc:mysql://localhost:3306/abc123</jdbc.url>
<jdbc.username>rootuser</jdbc.username>
<jdbc.password>rootpwd</jdbc.password>
</properties>
</profile>
</profiles>
</project>
<modelVersion>4.0.0</modelVersion>
<groupId>cc.mzone</groupId>
<artifactId>myjar</artifactId>
<version>0.1</version>
<packaging>jar</packaging>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
<properties>
<jdbc.url>jdbc:mysql://localhost:3306/abc</jdbc.url>
<jdbc.username>root</jdbc.username>
<jdbc.password>root</jdbc.password>
</properties>
<profiles>
<profile>
<id>product</id>
<properties>
<jdbc.url>jdbc:mysql://localhost:3306/abc123</jdbc.url>
<jdbc.username>rootuser</jdbc.username>
<jdbc.password>rootpwd</jdbc.password>
</properties>
</profile>
</profiles>
</project>
这里我们在pom文件中定义了数据库的相关配置,同时定义了一个profile,其id为product,同时在这个profile中也定义了数据库的相关配置。这样我们使用mvn package
命令时就可以使用默认的jdbc设置,当我们使用mvn package -P product
时maven就会自动使用id为product的profile中的数据库配置,这个是maven读取属性配置文件的覆盖。
然后再看pom文件中的resources段的配置:
写道
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
其中最重要的是true 这段,这个配置的意思是过滤上面指定属性文件中的占位符,占位符是${变量名称}
这样的形式,maven会自动读取配置文件,然后解析其中的占位符,使用上面pom文件中定义的属性进行替换。我们可以在src/main/resources下定义一个jdbc.properties配置文件,内容如下:
写道
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}
分两次执行上面的命令后,然后到项目的target目录下查看打包后的结果,可以看到jdbc.properties文件的内容随着打包的参数不同而变化了,从而也就实现了我们多环境的配置自动打包了。
写道
## 使用默认的配置信息
mvn clean package
## 使用product环境的配置信息
mvn clean package -P product
转载自:http://xiaoxuejie.iteye.com/blog/1564002 mvn clean package
## 使用product环境的配置信息
mvn clean package -P product
0 0
- Maven中的profile标签简介
- Maven Profile标签
- maven profile 简介
- maven中的profile
- 第九节:Maven中的Profile
- Maven的filtering和profile标签使用
- Maven简介——profile介绍
- Maven简介——profile介绍
- Maven依赖Scope标签简介
- Maven settings.xml中的Profile和Repository
- maven profile具体项目中的使用
- maven 中的scope简介
- MAVEN Profile
- maven profile
- Maven profile
- Maven Profile
- maven profile
- Maven profile
- 使用 MyEclipse 10 搭建 SSH2 框架整合开发环境
- 如何计算时间复杂度
- aop的代码原理+理论
- Delphi XE8 安卓摇一摇功能的实现
- 复杂链表的复制
- Maven中的profile标签简介
- Yocto tips : Yocto 如何加快软件包的下载 如何只下载所有需要的软件包而不编译
- Android库Volley的使用介绍
- iOS 简单push和present混用退回根视图方法
- Fragment事务的提交的方式
- Android Binder (0):代码层次
- 要善于利用数组字典
- 10grac ASM磁盘组添加和删除磁盘
- php如何判断常量是否被定义?