1. 程式人生 > >Maven系列(八)assembly打包-程式和依賴jar包分開化+多環境

Maven系列(八)assembly打包-程式和依賴jar包分開化+多環境

前言

上一篇介紹的是“assembly打包-程式和依賴jar包分開化”的配置方法, 這一篇就來介紹下如何多環境的配置,這裡請看清楚,是“程式和依賴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