二十二、Maven: Maven Profile

2019-06-02  本文已影响0人  yust5273
1.resource目录结构准备
└─src
    ├─main
    │  ├─java
    │  │  └─com
    │  │      └─yust5273
    │  └─resources
    │      └─conf
    │          ├─dev
    │          ├─pro
    │          └─test
    └─test
        └─java
dev、pro、test 目录中分别有一个app.properties,内容分别是他们各自环境的一些配置信息,
为简化测试,这里各自的app.properties文件内容分别为,dev、pro、test
2.pom.xml相关配置如下
  <profiles>
        <profile>
            <!--不同环境Profile的唯一id-->
            <id>dev</id>
            <properties>
                <!--profiles.active是自定义的字段(名字随便起),自定义字段可以有多个-->
                <profiles.active>dev</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>
        <profile>
            <id>pro</id>
            <properties>
                <profiles.active>pro</profiles.active>
            </properties>
        </profile>
    </profiles>

    <build>
        <resources>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
                <excludes>
                    <exclude>conf/**</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources/conf/${profiles.active}</directory>
            </resource>
        </resources>
3.运行效果

分别执行以下命令查看效果,
mvn clean install -P test
mvn clean install -P dev
mvn clean install -P pro

拓展 setting.xml中的Profile ---------家和公司两套

比如我们在公司连接公司的私服,在家里。。
就可以在setting.xml通过Profile配置不同环境。

    <profiles>
        <profile>
            <id>dev</id>
            <repositories>
                <repository>
                    <id>local-nexus</id>
                    <url>http://192.168.1.6:8081/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>plug-local-mirror</id>
                    <url>http://192.168.1.6:8081/nexus/content/groups/public/</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
        <profile>
            <id>external</id>
            <repositories>
                <repository>
                    <id>reop-mirror</id>
                    <url>http://uk.maven.org/maven2</url>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>plug-reop-mirror</id>
                    <url>http://uk.maven.org/maven2</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>dev</activeProfile>
    </activeProfiles>
上一篇 下一篇

猜你喜欢

热点阅读