maven根据环境打包不同的配置,资源文件

2017-11-22  本文已影响0人  不敢预言的预言家
首先看下我的资源文件目录
资源文件目录
两个 log4j2.xml 文件,最外层的是开发环境用的,uat目录下的是测试环境用的。
再看下我的pom.xml文件的结构目录
pom.xml

以下开始文件配置

如果对配置文件的位置有疑问,请参照上面的pom.xml结构目录

配置 【resources】
<build>
    ···
    <resources>
        <resource>
            <!--资源文件目录-->
            <directory>src/main/resources</directory>
            <!--开启过滤,替换文件-->
            <filtering>true</filtering>
            <!--排除文件-->
            <excludes>
                <exclude>uat/*</exclude>
            </excludes>
        </resource>
    </resources>
    ···
</build>

配置【profiles】
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <!--我的默认环境在最顶层,所以这个地方写空-->
            <package.environment></package.environment>
        </properties>
        <activation>
            <!--默认激活的环境-->
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>uat</id>
        <properties>
            <package.environment>uat</package.environment>
        </properties>
    </profile>
</profiles>

配置【plugin】
<build>
    <finalName>oilCard</finalName>
    <plugins>
        ···
        <!--war打包插件,指定资源打包
        指定环境打包:mvn -P uat package -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <archive>
                    <!--打包后不包括maven的描述文件-->
                    <addMavenDescriptor>false</addMavenDescriptor>
                </archive>
                <warName>${project.build.finalName}_${package.environment}</warName>
                <!--打包的时候排除文件-->
                <packagingExcludes>
                    src/main/resources/uat
                </packagingExcludes>
                <webResources>
                    <resource>
                        <!--替换要打包的资源到资源目录-->
                        <directory>src/main/resources/${package.environment}</directory>
                        <targetPath>WEB-INF/classes</targetPath>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
    </plugins>
    ···
</build>

打包命令:mvn -P uat package

mvn package 和 mvn install 区别
package是打包到当前目录中(默认target),install会把target下的资源推到资源仓库中。

上一篇下一篇

猜你喜欢

热点阅读