前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Maven 打包实现生产环境与测试环境配置分离

Maven 打包实现生产环境与测试环境配置分离

作者头像
shengjk1
发布2018-10-24 15:18:32
1.2K0
发布2018-10-24 15:18:32
举报
文章被收录于专栏:码字搬砖码字搬砖

在使用maven的过程中会发现一个问题,由于生产环境跟测试环境的配置不通,所以在分别打两个环境的包时,往往需要人工参与去修改配置文件,而人工参与的次数越大错误的几率就会越大,那maven能不能再不用人工修改配置文件的前提下来分别打两个环境的包呢,当然可以。

代码语言:javascript
复制
<!--也会供子项目继承-->
    <build>
        <!-- 插件管理,可供子项目继承 -->
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>

        <resources>
            <resource>
                <directory>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/core/src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
            <!--设置自动替换-->
            <resource>
                <directory>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/core/src/main/resources</directory>
                <includes>
                    <include>jdbc.properties</include>
                </includes>
                <!--也可以用排除标签-->
                <!--<excludes></excludes>-->
                <!--开启过滤-->
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>initialize</phase>
                        <!--<phase>clean</phase>-->
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo>Fruit:${fruit}</echo>
                            </tasks>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


    <profiles>
        <profile>
            <id>product</id>
            <properties>
                <fruit>product</fruit>
            </properties>
            <build>
                <filters>
                    <filter>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/filters/jdbc-product.properties</filter>
                </filters>
            </build>
        </profile>
        <profile>
            <id>dev</id>
            <properties>
                <fruit>dev</fruit>
            </properties>
            <activation>
            <!-->默认是dev环境的<-->
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <filters>
                    <filter>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/filters/jdbc-dev.properties</filter>
                </filters>
            </build>
        </profile>
    </profiles>

如果想要打生产环境的包

代码语言:javascript
复制
vn package  -Pproduct 

filter文件下包括2个配置文件 jdbc-dev.properties

代码语言:javascript
复制
jdbc.url=i am dev
jdbc.username=i am dev
jdbc.password=i am dev

jdbc-product.properties

代码语言:javascript
复制
jdbc.url=i am product
jdbc.username=i am product
jdbc.password=i am product

而resource目录下 jdbc.properties

代码语言:javascript
复制
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}

maven在构建的时候会自动替换变量里的变量

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年04月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档