`
qindongliang1922
  • 浏览: 2148884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116363
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124630
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58533
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70407
社区版块
存档分类
最新评论

Maven如何配置不同的环境文件

    博客分类:
  • JAVA
阅读更多
现在大公司的项目一般都会采取maven管理,因为大公司往往有多套环境配置,原来在的公司5套环境:
(1)开发
(2)测试
(3)沙箱
(4)灰度
(5)线上
当然这只是理论上的,搞这么多环境的目的只有一个,就是尽量防止或减少在生产环境出问题,所以往往你的项目或代码都要在每一套环境上
跑一遍确定是没有问题的。

小公司一般都有3套环境,开发,测试,线上,不同的环境我们的一些链接资源可能是不一样的,比如说,数据库的地址,某些集群的地址,比如ElasticSearch,Solr,Hadoop,Hbase,Zookeeper等 等,不同的环境的参数是不一样的,如果我们只有一个配置文件,那可能需要改来改去,而且还可能会出问题,maven提供了标准的目录配置,我们可以在src/main/filters下,放入我们的所有环境的配置,当然要约定一个暗号,通常是xxxx-dev{product,test}.properties等等,这里我们模拟3套环境做个demo:



上面的配置文件准备好后,我们还需要在pom文件里面,加入filter和profile配置:
   <build>
        <!--指定下面的目录为资源文件-->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
            <!--设置自动替换-->
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>index-config.properties</include>
                </includes>
                <!--也可以用排除标签-->
                <!--<excludes></excludes>-->
                <!--开启过滤-->
                <filtering>true</filtering>
            </resource>
        </resources>
 
 </build>

最后在加入
<profiles>
        <!--默认激活开发配置,使用index-dev.properties来替换实际的文件key-->
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <filters>
                    <filter>src/main/filters/index-dev.properties</filter>
                </filters>
            </build>
        </profile>
        <!-- 测试环境配置 -->
        <profile>
            <id>test</id>
            <build>
                <filters>
                    <filter>src/main/filters/index-test.properties</filter>
                </filters>
            </build>
        </profile>
        <!-- 生产环境配置 -->
        <profile>
            <id>product</id>
            <build>
                <filters>
                    <filter>src/main/filters/index-product.properties</filter>
                </filters>
            </build>
        </profile>
    </profiles>


在实际打包的时候,可以指定以哪个环境的配置文件编译打包,例如:
以开发环境打包:mvn clean package -Pdev
以测试环境打包:mvn clean package -Ptest
以生产环境打包:mvn clean package -Pproduct

如何将maven项目依赖外部的jar打成一个单独的jar包呢?,非常简单,在pom文件中加入下面的一段代码:

  <build> 
        <plugins> 
            <plugin> 
                <groupId>org.apache.maven.plugins</groupId> 
                <artifactId>maven-compiler-plugin</artifactId> 
                <version>2.3.2</version> 
                <configuration> 
                    <source>1.7</source> 
                    <target>1.7</target> 
                </configuration> 
            </plugin> 
            <plugin> 
                <artifactId>maven-assembly-plugin</artifactId> 
                <configuration> 
                    <archive> 
                        <manifest> 
                            <addClasspath>true</addClasspath> 
                            <mainClass>换成自己的主类</mainClass> 
                        </manifest> 
                    </archive> 
                    <descriptorRefs> 
                        <descriptorRef>jar-with-dependencies</descriptorRef> 
                    </descriptorRefs> 
                </configuration> 
                <executions> 
                    <execution> 
                        <id>make-my-jar-with-dependencies</id> 
                        <phase>package</phase> 
                        <goals> 
                            <goal>single</goal> 
                        </goals> 
                    </execution> 
                </executions> 
            </plugin>             
        </plugins> 
    </build>






  • 大小: 45.5 KB
2
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics