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

首先看下我的资源文件目录

资源文件目录

两个 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下的资源推到资源仓库中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容