• 九江市委书记林彬杨主持召开市委常委会议 对市县机构改革提了这些要求 2019-04-10
  • 2018款奔驰E级购车指南 中低配是主力 2019-04-07
  • 264路胡乱发车,投诉一月依然如故。 2019-04-07
  • 张太雷烈士大学毕业证书回到故乡常州 2019-04-06
  • 日照市今年计划投资158亿 修建幸福公路助发展 2019-04-06
  • 吴青峰新歌口碑持续攀升 获赞“这很吴青峰”青峰 新歌 2019-04-03
  • 《国家人文历史》2018年第4期封面及目录 2019-04-03
  • 统计局:5月份经济运行主要指标呈现五大特点 2019-03-27
  • 罗品禧的专栏作者中国国家地理网 2019-03-27
  • 习近平同上海合作组织成员国领导人共同会见记者并讲话 2019-03-27
  • 陈扬勇谈“党的领导是中国特色社会主义最本质的特征” 2019-03-20
  • 解读习近平八一讲话:铭记辉煌历史 推进强军事业 2019-03-20
  • 发挥自身优势 奋力走在前列——习近平总书记在山东考察回访记 2019-03-19
  • 明年起全面供应国六标准汽柴油 2019-03-19
  • 异类非人思维。如一尼安德特人从2万年前发出的声音。 2019-03-16
  • 随笔-126  评论-247  文章-5  trackbacks-0

    环境配置

    在你的 pom.xml 文件中添加如下配置:
    <profiles>
      <profile> <!-- 可以通过 -P ID 来激活 -->
        <id>PROD</id> <!-- ID 标识符 -->
        <properties>
          <env>PROD</env> <!-- properties 定义 key-value, 这里 key 是 env, value 是 PROD -->
        </properties>
        <activation>
          <activeByDefault>true</activeByDefault> <!-- 默认激活 -->
        </activation>
      </profile>
      <profile> <!-- 可以通过 -P ID 来激活 -->
        <id>TEST</id> <!-- ID 标识符 -->
        <properties>
          <env>TEST</env> <!-- properties 定义 key-value, 这里 key 是 env, value 是 TEST -->
        </properties>
      </profile>
    </profiles>
    上面定义了两套环境的配置,一套是用于生产环境的 PROD,另外一套是用于测试环境的 TEST。profile 可以通过 -P 参数来激活,如 -PTEST
    (或 -P TEST)即可激活 TEST 配置。TEST 配置激活之后,通过 ${env} 表达式即可获得 <env>TEST</env> 配置的 TEST 字符串值。 

    assembly 插件

    maven-assembly-plugin 插件可以实现自定义打包。在你的 pom.xml 文件中添加如下配置:
    <build>
      <plugins>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId> <!-- 官网给出的配置,没有配置 groupId,这里也不配置 -->
          <version>2.4</version>
          <executions>
            <execution>
              <id>make-assembly</id> <!-- ID 标识,命名随意 -->
              <phase>package</phase> <!-- 绑定到 PACKAGE 生命周期阶段 -->
              <goals>
                <goal>single</goal>  <!-- 在 PACKAGE 生命周期阶段仅执行一次 -->
              </goals>
            </execution>
          </executions>
          <configuration>
            <descriptors>
              <descriptor>assembly.xml</descriptor> <!-- 自定义打包的配置文件 -->
            </descriptors>
            <appendAssemblyId>false</appendAssemblyId> <!-- 设为 FALSE, 防止 WAR 包名加入 assembly.xml 中的 ID -->
          </configuration>
        </plugin>
      </plugins>
    </build>
    在项目的根目录下创建一个 assembly.xml 文件(与 pom.xml 文件在同一个目录)。示例项目的结构如下:

    不管是开发环境、测试环境还是生产环境等,它们通常只是配置文件不一样,下面实现根据不同的参数打包出适应各个不同环境的 WAR 包。

    assembly.xml 配置

    assembly.xml 文件的配置如下:
    <assembly xmlns="//maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
      xmlns:xsi
    ="//www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation
    ="//maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 
      //maven.apache.org/xsd/assembly-1.1.3.xsd"
    >
      <!-- ID 标识,命名随意 -->
      <id>${project.artifactId}-assembly-${project.version}</id>
      <!-- 默认为 TRUE, 设为 FALSE, 防止将 ${project.finalName} 作为根目录打进 WAR 包 -->
      <!-- TRUE  结构: ${project.finalName}.war/${project.finalName}/WEB-INF -->
      <!-- FALSE 结构: ${project.finalName}.war/WEB-INF -->
      <includeBaseDirectory>false</includeBaseDirectory>
      <!-- 设置为 WAR 包格式 -->
      <formats>
        <format>war</format>
      </formats>
      <fileSets>
        <!-- 将 target/classes 下的文件输出到 WEB-INF/classes, 同时排除 target/classes/conf/*.properties -->
        <fileSet>
          <directory>${project.build.outputDirectory}</directory> <!-- target/classes -->
          <outputDirectory>WEB-INF/classes</outputDirectory>
          <excludes>
            <exclude>**/conf/*.properties</exclude>
          </excludes>
        </fileSet>
        <!-- 将 env/${env}/conf 下的文件输出到 WEB-INF/classes/conf, 实现 -P 不同的参数打包出不同的配置 -->
        <!-- ${env} 的值由 -P 的参数传递进来, 如:-PTEST, 那么, ${env} 的值就是 TEST -->
        <fileSet>
          <directory>${project.basedir}/env/${env}/conf</directory>
          <outputDirectory>WEB-INF/classes/conf</outputDirectory>
        </fileSet>
        <!-- 将 webapp 下的文件输出到 WAR 包 -->
        <fileSet>
          <directory>${project.basedir}/src/main/webapp</directory>
          <outputDirectory>/</outputDirectory>
        </fileSet>
      </fileSets>
      <!-- 将项目依赖的JAR包输出到 WEB-INF/lib -->
      <dependencySets>
        <dependencySet>
          <outputDirectory>WEB-INF/lib</outputDirectory>
        </dependencySet>
      </dependencySets>
    </assembly>

    打包出适应各个环境的 WAR 包

    选中项目右键 --> Run As --> Maven build... --> Goals 栏输入 -PTEST clean package 。

    执行完成即可打包出测试环境的 WAR 包(示例源码下载:proj-web.zip)。
    你可以将打包出来的 WAR 包重命名为 ROOT.war,然后把它丢到 Tomcat 的 webapps 目录下,备份删除 ROOT 文件夹,启动/重启 Tomcat 即可。


      
    posted on 2015-06-27 21:26 fancydeepin 阅读(13264) 评论(0)  编辑  收藏 所属分类: maven
  • 九江市委书记林彬杨主持召开市委常委会议 对市县机构改革提了这些要求 2019-04-10
  • 2018款奔驰E级购车指南 中低配是主力 2019-04-07
  • 264路胡乱发车,投诉一月依然如故。 2019-04-07
  • 张太雷烈士大学毕业证书回到故乡常州 2019-04-06
  • 日照市今年计划投资158亿 修建幸福公路助发展 2019-04-06
  • 吴青峰新歌口碑持续攀升 获赞“这很吴青峰”青峰 新歌 2019-04-03
  • 《国家人文历史》2018年第4期封面及目录 2019-04-03
  • 统计局:5月份经济运行主要指标呈现五大特点 2019-03-27
  • 罗品禧的专栏作者中国国家地理网 2019-03-27
  • 习近平同上海合作组织成员国领导人共同会见记者并讲话 2019-03-27
  • 陈扬勇谈“党的领导是中国特色社会主义最本质的特征” 2019-03-20
  • 解读习近平八一讲话:铭记辉煌历史 推进强军事业 2019-03-20
  • 发挥自身优势 奋力走在前列——习近平总书记在山东考察回访记 2019-03-19
  • 明年起全面供应国六标准汽柴油 2019-03-19
  • 异类非人思维。如一尼安德特人从2万年前发出的声音。 2019-03-16
  • 黑龙江时时彩走势图在线 北京pk10开奖记录 pk10冠军追码器 江西多乐彩十一选五开奖走势图 极速时时彩有猫腻吗 海南彩票开奖长条 搜狐彩票走势图 中国体彩网11169期 2017年297期福彩开奖号 pk10开奖视频 重庆时时彩计划哪里买 北京pk105码5期全天不挂公式 中国竞彩网14场胜负 jj麻将 3d玩法介绍 重庆幸运农场计算法