黑马程序员技术交流社区

标题: 【郑州校区】Java之品优购课程讲义_day20(3) [打印本页]

作者: 谷粒姐姐    时间: 2018-11-5 10:51
标题: 【郑州校区】Java之品优购课程讲义_day20(3)
.Maven Profile
2.1 什么是 MavenProfile
在我们平常的 java 开发中,会经常使用到很多配制文件(xxx.properties,xxx.xml),而 当我们在本地开发(dev),测试环境测试(test),线上生产使用(product)时,需要不 停的去修改这些配制文件,次数一多,相当麻烦。现在,利用 maven 的 filter 和 profile 功能, 我们可实现在编译阶段简单的指定一个参数就能切换配制,提高效率,还不容易出错.
profile 可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义 多个 profile,然后每个 profile 对应不同的激活条件和配置信息,从而达到不同环境使用不同 配置信息的效果。
2.2 Maven Profile 入门
修改 pinyougou-page-web 的 pom.xml  
[AppleScript] 纯文本查看 复制代码
 <properties> 
   <port>9105</port>
  </properties>
  <build>   
   <plugins>      
       <plugin>
<groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
     <!-- 指定端口 -->
     <port>${port}</port>
     <!-- 请求路径 -->
     <path>/</path>
    </configuration>
      </plugin>
   </plugins>   
    </build>

运行 tomcat7:run ,发现运行结果是一样的,因为 port 是变量,而变量值是定义为 9105。这 其实就是我们之前学习的 maven 的变量。
那我们现在思考一下,如果这个端口在开发时使用 9105,如果在生产环境(或其他环境) 为 9205 呢?如何解决值的动态切换呢?
这时我们修改 pom.xml,增加 profile 定义
[AppleScript] 纯文本查看 复制代码
 <profiles> 
   <profile>
    <id>dev</id>
    <properties>
     <port>9105</port>
    </properties>
   </profile>
<profile>
    <id>pro</id>
    <properties>
     <port>9205</port>
    </properties>
   </profile>   
  </profiles>

执行命令 tomcat7:run -P pro  发现以 9205 端口启动
执行命令 tomcat7:run -P dev  发现以 9105 端口启动
-P 后边跟的是 profile 的 id
如果我们只执行命令 tomcat7:run ,也是以 9105 启动,因为我们一开始定义的变量值就是 9105,就是在不指定 profileID 时的默认值.






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2