针对不同的环境使用不同的编译打包设置,方便了多环境下的打包部署,一般我们开发项目都会有至少开发环境和正式环境两个,针对这两个环境的配置信息也会有所不同,比如数据库的配置等。我们可以使用maven的profile定义来进行区分,比如我们在项目的pom文件中定义如下片段:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.hello</groupId>
<artifactId>hello</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>123456</jdbc.password>
</properties>
<profiles>
<profile>
<id>local</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为local,同时在这个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>
其中最重要的是<filtering>true</filtering>这段,这个配置的意思是过滤上面指定属性文件中的占位符,占位符是${变量名称}这样的形式,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}
执行的效果如下:
## 使用默认的配置信息
mvn clean package
## 使用product环境的配置信息
mvn clean package -P product
分两次执行上面的命令后,然后到项目的target目录下查看打包后的结果,可以看到jdbc.properties文件的内容随着打包的参数不同而变化了,从而也就实现了我们多环境的配置自动打包了。
分享到:
相关推荐
在maven中实现多环境的构建可移植性需要使用profile,通过不同的环境激活不同的profile来达到构建的可移植性。
maven-profile-2.0.6.jar!!!
maven项目转换为eclipse项目,可能缺少的包。
maven-profile-2.1.0.jar
maven-profile-2.0.2.jar
maven-profile-2.0.1.jar
使用maven Profile实现多环境构建,详细请参考 :http://blog.csdn.net/u011781521/article/details/77899467
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【*...
主要介绍了使用maven profile指定配置文件打包适用多环境的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
NULL 博文链接:https://hejiawangjava.iteye.com/blog/2280427
第14章:灵活的构建/14.2 Maven属性的使用/14.2.1 直接在POM文件中使用 第14章:灵活的构建/14.2 Maven属性的使用/14.2.2 使用注解:Parameter 第14章:灵活的构建/14.2 Maven属性的使用/14.2.3 属性解析/14.2.3.1 ...
下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后保存并退出Vi: export M2_HOME=/Users/...
主要介绍了maven profile动态选择配置文件详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包