Maven系列(八)assembly打包-程序和依赖jar包分开化+多环境

《Maven系列(八)assembly打包-程序和依赖jar包分开化+多环境》 maven.png

前言

上一篇介绍的是“assembly打包-程序和依赖jar包分开化”的配置方法, 这一篇就来介绍下如何多环境的配置,这里请看清楚,是“程序和依赖jar包分开化+多环境”跟之前的不太一样哦。

需要修改的配置

项目的目录结构

《Maven系列(八)assembly打包-程序和依赖jar包分开化+多环境》 工程结构.png

pom

添加profile配置,我这里同样配置了三种环境

<profiles>
        <profile>
            <id>local</id>
            <properties>
                <env>local</env>
            </properties>
            <!-- 如果不指定ID,默认是本地环境-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <env>test</env>
            </properties>
        </profile>
        <profile>
            <id>product</id>
            <properties>
                <env>product</env>
            </properties>
        </profile>
    </profiles>

package.xml

新增了两处

<fileSets>
        <!--需要包含的文件与输出的路径-->
        <fileSet>
            <directory>src/main/bin</directory>
            <outputDirectory>bin/</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>src/main/resources</directory>
            <outputDirectory>/</outputDirectory>
            <!-- 去除需要多环境配置的文件-->
            <excludes>
                <exclude>application.properties</exclude>
            </excludes>
        </fileSet>
        <!--多环境配置-->
        <fileSet>
            <!--${env} 可以获取打包命令里的参数-->
            <directory>src/main/resources/env/${env}/</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
        </fileSet>
    </fileSets>

多环境打包测试

环境命令
本地mvn clean package -P local
测试mvn clean package -P test
生产mvn clean package -P product

后记

  • 关于assembly打包,mybatis的xml访问不了的问题已经解决了,注意配置mybatis.mapperLocations=classpath:mapper/*.xml
  • maven的功能之强大到你无法想象,我之前的一系列文章对我所接触到的maven所有用法都有较详细的配置说明
  • 以后有可能会开始尝试使用gradle打包

欢迎浏览我的博客

代码在Github

    原文作者:冬天只爱早晨
    原文地址: https://www.jianshu.com/p/a5a005b1ce8c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞