maven的l中profiles的作⽤详解
⽬录
1、profiles是什么?有什么作⽤
2、如何配置
3、区别构建发布包
maven多环境profiles参数切换
项⽬结构图
1、profiles是什么?有什么作⽤
在maven构建的项⽬都存在⼀个l的项⽬对象模型配置⽂件,⽤于约束项⽬(如:jar包管理、构建管理等)。profiles 是l中的⼀个配置项。
我们在开发项⽬时⼀般都会区分线上环境和测试环境,这两个环境需要切换以适应不同的环境需求
正式环境的配置,⼀般放置于src/main/resources下,⽽测试环境放置于/src/test/resources下⾯。
vbs整人代码qq轰炸程序profile的主要作⽤就是区分正式环境和测试环境的配置
2、如何配置
aptana studio是什么<profiles>
<profile>
<id>release</id>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
</profile>
<profile>
<id>test</id>
<build>
<resources>
<resource>
<directory>src/test/resources</directory>
<includes>
<include>config/*.properties</include>
<include&l</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
<excludes>
c语言强制转换数据类型<exclude&l</exclude>
</excludes>
</resource>
</resources>
</build>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
如上,我配置了两个profile⼀个release⽤于正式环境发布,test⽤于测试环境使⽤;默认开启测试环境,activation->true
测试环境与正式环境只是部分的配置不同,我们需要公⽤这部分配置。这就使⽤到了includes and excludes,⽤引⼊和排除配置⽂件
3、区别构建发布包
构建测试包:
maven package -P test -st.skip=true
构建正式包:
maven package -P release -st.skip=true
properties是什么文件maven多环境profiles参数切换
在实际开发项⽬中,常常有⼏种环境,⼀般情况下最少有三种环境:开发、测试、正式,各个环境之间的参数也各不相同,
于是在环境切换时我们需要修改为各环境需要的参数,就此我们可以通过maven的配置在切换环境是简化这⼀步骤.
项⽬结构图
echarts是什么意思中文
src/main/resources/dev ⽬录是开发环境的配置项⽬
src/main/resources/test ⽬录是测试环境的配置项⽬
在l定义环境的profile
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<project.active>dev</project.active>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<project.active>test</project.active>
</properties>
</profile>
</profiles>
activeByDefault标签的值为true的话表⽰为默认的profile,使⽤mvn install命令起作⽤的就是默认的 profiles.activation为我们配置激活的profile
<build>
<finalName>SpringMVC_Spring_Mybatis</finalName>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>message.properties</include>
<include>${project.active}/**</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<excludes>
<exclude>db.properties</exclude>
<exclude>user.properties</exclude>
<exclude>message.properties</exclude>
<exclude>**/**</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>at.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<uriEncoding>UTF-8</uriEncoding>
<path>/</path>
<port>8088</port>
</configuration>
</plugin>
</plugins>
</build>
在⼯程的${basedir}/src/main/resource,⽬录下(basedir指的是pom⽂件所在的⽬录)
<include>与<exclude>是⽤来圈定和排除某⼀⽂件⽬录下的⽂件是否是⼯程资源的,<include>中指定的为资源⽂件,其它的都不是,<exclude>中指定的除了这些都为资源⽂件,如果<include>与<exclude>划定的范围存在冲突时,以<exclude>划定的范围为准,当<include>与<exclude>指定了相同的⽂件时,它们是不会被排除的,如message.properties同时被<include>与<exclude>指定,但它们还是会被编译.
输⼊maven指令
mvn clean install -P test
uml图形编译结果如下图,只编译test环境需要的配置-P后⾯的test为我们所要激活的profile
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论