美文网首页swift
Maven Profile多环境打包

Maven Profile多环境打包

作者: CoffeeSite | 来源:发表于2017-03-28 14:35 被阅读211次

    在项目管理中,对于一个项目或者产品,我们经常会有开发,测试,预发布,生产等多套环境。为避免每次打包发布有过多的人为干扰因素,我们可以利用maven的profile来管理配置项。命令:mvn install -P dev


    首选需要修改maven build的配置,添加resources的filter用于替换占位符

    <build>
            <outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/</outputDirectory>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>    //定义需要替换配置的文件路径
                    <filtering>true</filtering>    
                </resource>
            </resources>
            <plugins></plugins>
    </build>
    

    方法一:将配置项写在mvn中

    <profiles>
            <profile>
                <id>Local</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <!-- 打包配置选择 -->
                    <!-- 公共配置 需要考虑是否单独配置成私有 -->
                    <mvn.common.username>local</mvn.common.username>
                </properties>
            </profile>
    
            <profile>
                <id>Testing</id>
                <properties>
                    <!-- 打包配置选择 -->
                    <!-- 公共配置 需要考虑是否单独配置成私有 -->
                    <mvn.common.username>testing</mvn.common.username>
                </properties>
            </profile>
    
            <profile>
                <id>Pro</id>
                <properties>
                    <!-- 打包配置选择 -->
                    <!-- 公共配置 需要考虑是否单独配置成私有 -->
                    <mvn.common.username>pro</mvn.common.username>
                </properties>
            </profile>
        </profiles>
    

    方法二:将配置项单独写在配置文件中

    <profiles>
            <profile>
                <id>Local</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <build>
                    <filters>
                        <filter>../Test.properties</filter>
                    </filters>
                </build>
            </profile>
            <profile>
                <id>Testing</id>
                <build>
                    <filters>
                        <filter>../Production.properties</filter>
                    </filters>
                </build>
            </profile>
        </profiles>
    

    注:
    1.profiles定义了各个环境的变量id,activeByDefault定义默认打包的环境
    2.resources中是定义哪些目录下的文件会被配置文件中定义的变量替换,一般我们会把项目的配置文件放在src/main/resources下,里面用到的变量在打包时就会根据filter中的变量配置替换成固定值

    相关文章

      网友评论

        本文标题:Maven Profile多环境打包

        本文链接:https://www.haomeiwen.com/subject/llpjottx.html