zoukankan      html  css  js  c++  java
  • maven根据不同的environment打包配置

    一、maven根据不同的environment打包配

    一个项目里总会有很多配置文件。而且一般都会有多套环境。开发的、测试的、正式的。而在这些不同的环境这些配置的值都会不一样。
    比如mail的配置、服务的url配置这些都是很常见的。
    所以在打包的时候就要根据environment来选不同的值或者配置文件。
    比较常用的办法就是为不同的环境建立不同的配置文件目录。在打包的时候用对应的文件目录下的配置文件。 |-- resources | |-- dev | |-- test | |-- pro 在pom.xml里定义一个打包用的profile变量
     1 <!-- 开发 -->
     2 <profile>
     3     <id>dev</id>
     4     <properties>
     5         <package.environment>dev</package.environment>
     6     </properties>
     7 </profile>
     8 <!-- 测试 -->
     9 <profile>
    10     <id>test</id>
    11     <properties>
    12         <package.environment>test</package.environment>
    13     </properties>
    14 </profile>
    15 <!-- 生产 -->
    16 <profile>
    17     <id>pro</id>
    18     <properties>
    19         <package.environment>pro</package.environment>
    20     </properties>
    21 </profile>
    pom.xml引用profile变量
     1 <plugin>
     2      <artifactId>maven-war-plugin</artifactId>
     3      <version>3.0.0</version>
     4      <configuration>
     5          <warSourceDirectory>src/main/webapp</warSourceDirectory>
     6          <archive>
     7              <addMavenDescriptor>false</addMavenDescriptor>
     8          </archive>
     9          <!--<warName>app</warName>-->
    10          <webResources>
    11              <resource>
    12                <directory>src/main/resources/config/${package.environment}</directory>
    13                  <targetPath>WEB-INF/classes/config</targetPath>
    14                  <filtering>true</filtering>
    15              </resource>
    16         </webResources>
    17     </configuration>
    18</plugin>
    org.apache.maven.plugins插件<webResources>动态指定参数${package.environment}对应文件夹下的文件到WEB-INF/classes下
    注意
    :参数<filtering>true</filtering>,一定要设置成true这样才会用对应environment目录下的配置文件覆盖原来的

    二、结合idea打包命令

     1.本地开发打包命令

    clean package -DskipTests -Pdev

    2.生产环境打包命令

    clean package -DskipTests -Ppro
  • 相关阅读:
    关于公司电脑修改host文件无法生效的问题
    Cannot access nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public) in offline mode and the artifact org.springframework
    DCL-单例模式的线程安全
    关于volatile
    关于CAS中的ABA问题存在的隐患
    无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它
    vue整合笔记
    vue9-axios、细节和杂项
    vue8-vuex、路径配置别名、promise
    vue07-路由 vue-router、keep-alive、tab-bar
  • 原文地址:https://www.cnblogs.com/luohero/p/7600660.html
Copyright © 2011-2022 走看看