zoukankan      html  css  js  c++  java
  • 通过maven-war-plugin插件对war包分环境打包

    针对多环节,从源头打包入手,当然这些都可以在运维阶段用脚本进行替换来代替

    resources/environment/下有四个环境,local本地、dev开发、test测试、pre预上线、prod生产,打包命令如下:

        # 本地
        mvn clean package -P local
        # 开发
        mvn clean package -P dev
        # 测试
        mvn clean package -P test
        # 预上线
        mvn clean package -P pre
        # 生产
        mvn clean package -p prod

    说明:每个环境的文件夹下的配置文件可以全量放,也可以试增量,最终会覆盖

    项目目录如下所示:

    部分POM如下说是:

        <profiles>
            <!-- 本地环境 -->
            <profile>
                <id>local</id>
                <properties>
                    <package.environment>local</package.environment>
                </properties>
                <!-- 是否默认 -->
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
            </profile>
            <!-- 开发环境 -->
            <profile>
                <id>dev</id>
                <properties>
                    <package.environment>dev</package.environment>
                </properties>
            </profile>
            <profile>
                <!-- 测试环境 -->
                <id>test</id>
                <properties>
                    <package.environment>test</package.environment>
                </properties>
            </profile>
            <profile>
                <!-- 预上线 -->
                <id>pre</id>
                <properties>
                    <package.environment>pre</package.environment>
                </properties>
            </profile>
            <profile>
                <!-- 生产环境 -->
                <id>prod</id>
                <properties>
                    <package.environment>prod</package.environment>
                </properties>
            </profile>
        </profiles>
    
        <build>
            <finalName>ssm-framework</finalName>
            <plugins>
                
                <!-- war包打包组件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${maven-war-plugin.version}</version>
                    <configuration>
                        <webResources>
                            <resource>
                                <!-- 元配置文件的目录,相对于pom.xml文件的路径 -->
                                <directory>src/main/webapp/WEB-INF</directory>
                                <!-- 是否过滤文件,也就是是否启动auto-config的功能 -->
                                <filtering>true</filtering>
                                <!-- 目标路径 -->
                                <targetPath>WEB-INF</targetPath>
                            </resource>
                            <resource>
                                <directory>src/main/resources/environment/${package.environment}</directory>
                                <targetPath>WEB-INF/classes</targetPath>
                                <filtering>true</filtering>
                            </resource>
                        </webResources>
                    </configuration>
                </plugin>

    说明:标红部分

    示例工程:https://github.com/easonjim/ssm-framework

  • 相关阅读:
    玩聚网和百度新闻的技术差异性
    拿下“[warn] (OS 64)指定的网络名不再可用”错误
    转型要回答的四个问题和一根筋变形Push法
    奇虎之奇酷改版为热点memeTracker之分析
    新媒体的运营之道【三】
    疑似BUG:Python SGMLParser处理html中的javascript失当
    智能语义参透股票 小公司不见得比输大公司
    新SNS的创立和运营之道[360圈座谈]
    在路上:语义和创业
    论Push!
  • 原文地址:https://www.cnblogs.com/EasonJim/p/9126442.html
Copyright © 2011-2022 走看看