原文:https://blog.csdn.net/duan9421/article/details/79086335

我们在日常开发工作中通常会根据不同的项目运行环境,添加不同的配置文件,例如 开发环境,测试环境,生产环境等,每次手工的修改配置文件太过于繁琐。通过maven打包时确定需要使用的配置文件可以很好的解决这个问题。

下面看一下代码目录

application-dev.properties对应开发环境

application-test.properties对应测试环境

application-prod.properties对应生产环境

application.properties中填写spring.profiles.active=@activatedProperties@,这里的@activatedProperties@是一个变量对应pom文件里的环境配置。

 

下面是pom文件的配置

  1.  
    <profiles>
  2.  
    <profile>
  3.  
    <id>dev</id>
  4.  
    <properties>
  5.  
    <!-- 环境标识,需要与配置文件的名称相对应 -->
  6.  
    <activatedProperties>dev</activatedProperties>
  7.  
    </properties>
  8.  
    <activation>
  9.  
    <!-- 默认环境 -->
  10.  
    <activeByDefault>true</activeByDefault>
  11.  
    </activation>
  12.  
    </profile>
  13.  
    <profile>
  14.  
    <id>test</id>
  15.  
    <properties>
  16.  
    <activatedProperties>test</activatedProperties>
  17.  
    </properties>
  18.  
    </profile>
  19.  
    <profile>
  20.  
    <id>prod</id>
  21.  
    <properties>
  22.  
    <activatedProperties>prod</activatedProperties>
  23.  
    </properties>
  24.  
    </profile>
  25.  
    </profiles>

在pom文件里分别配置好不同环境的文件名称,注意:<activatedProperties>dev</activatedProperties>中的dev与配置文件名称application-dev.properties要一致
activatedProperties名称对应application.properties配置文件中的spring.profiles.active=@activatedProperties@

当maven打包时会用pom文件里<activatedProperties>dev</activatedProperties>中的值替换掉application.properties配置文件中的@activatedProperties@

下面配置maven打包插件

  1.  
    <build>
  2.  
    <resources>
  3.  
    <resource>
  4.  
    <!--配置文件路径 -->
  5.  
    <directory>src/resources</directory> <!--这里对应项目存放配置文件的目录-->
  6.  
    <!--开启filtering功能 -->
  7.  
    <filtering>true</filtering>
  8.  
    </resource>
  9.  
    </resources>
  10.  
    <plugins>
  11.  
    <plugin>
  12.  
    <groupId>org.springframework.boot</groupId>
  13.  
    <artifactId>spring-boot-maven-plugin</artifactId>
  14.  
    <version>1.5.2.RELEASE</version>
  15.  
    <configuration>
  16.  
    <mainClass>com.duan.SpringbootMybatis.App</mainClass><!--springboot启动类目录-->
  17.  
    </configuration>
  18.  
    <executions>
  19.  
    <execution>
  20.  
    <goals>
  21.  
    <!--创建一个自动可执行的jar或war文件 -->
  22.  
    <goal>repackage</goal>
  23.  
    </goals>
  24.  
    </execution>
  25.  
    </executions>
  26.  
    </plugin>
  27.  
    </plugins>
  28.  
    </build>

配置完成,下面我们进行打包操作,我是使用eclipse进行打包,项目pom文件右键,run as ---> maven build

观察控制台输入日志

已经构建成功,刷新一下项目,target会生成SpringbootMybatis-0.0.1-SNAPSHOT.jar包。

我们可以观察一下jar包的目录结构:

打开manifest.mf文件

查看启动类是否正确。

下面我们执行一下这个jar包,输入执行命令,java -jar

出现启动成功信息,对应端口号是8888与我们application-prod.properties配置文件中的一致,说明配置成功了。

浏览器访问一下

访问成功!

主要利用了maven打包时,拦截配置文件使用pom文件中的值替换掉spring.profiles.active=@activatedProperties@中的变量,完成动态配置文件的使用功能。

---------------------

本文来自 夏日小虫 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/duan9421/article/details/79086335?utm_source=copy

eclipse使用profile完成不同环境的maven打包功能的更多相关文章

  1. springboot多环境下maven打包

    前言: 最近在项目中使用springboot时发现,采用在pom中定义不同的profile,并且maven打包时 采用-P参数并不能替换我application.properties文件中指定占位符的 ...

  2. 使用maven profile实现多环境配置相关打包

    项目开发需要有多个环境,一般为开发,测试,预发,正式4个环境,通过maven可以实现按不同环境进行打包部署,命令为: mvn package -P dev 在eclipse中可以右击选项run con ...

  3. Maven 整合 spring profile实现多环境自动切换

    Maven 整合 spring profile实现多环境自动切换 时间:2014-03-19 15:32来源:Internet 作者:Internet 点击:525次 profile主要用在项目多环境 ...

  4. 使用maven profile实现多环境可移植构建(转自CSDN)

    使用maven profile实现多环境可移植构建 标签: maven profilemaven自动构建maven自动部署maven可移植构建持续集成 2014-04-25 23:37 26905人阅 ...

  5. 利用maven的filter和profile实现不同环境使用不同的配制

    在我们平常的java开发中,会经常使用到很多配制文件(xxx.properties,xxx.xml),而当我们在本地开发(dev),测试环境测试(test),线上生产使用(product)时,需要不停 ...

  6. 使用Maven Profile实现多环境构建

    在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次 ...

  7. 利用maven的resources、filter和profile实现不同环境使用不同配置文件

    基本概念说明(resources.filter和profile): 1.profiles定义了各个环境的变量id 2.filters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profil ...

  8. 使用maven profile实现多环境可移植构建

    mvn clean package -Pproduction即构建出生产环境需要的war包 mvn tomcat:redeploy -Ptest 即发布到测试环境 在开发过程中,我们的软件会面对不同的 ...

  9. maven profile实现多环境打包

    快速解决: 项目目录 1.pom文件中添加profile <profiles> <profile> <!-- 本地开发环境 --> <id>dev< ...

随机推荐

  1. linux远程windows执行命令

    Linux下远程连接windows,执行命令 - Feng______的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/feng______/article/deta ...

  2. 数据库索引和SQL语句使用经验

    1.如果检索数据量超过30%的表中记录数,使用索引将没有显著的效率提高 2.在特定情况下,使用索引也许会比全表扫描慢,但这是同一个数量级上的差距:而通常情况下,使用索引比全表扫描要快几倍乃至几千倍! ...

  3. 2012 Dhaka

    2012 Dhaka B - Wedding of Sultan 题目描述:给出一棵树的\(dfs\)序(只要经过就会记录),求每个点的度 solution 按\(dfs\)序的规则还原这棵树就好了. ...

  4. C#实现语音朗读功能

    第一步:新建项目  TTS(从文本到语音(TextToSpeech)) 第二步:添加引用 System.Speech 第三步:主界面以及后台代码 using System;using System.G ...

  5. Workman启动失败的解决方法 stream_socket_server() has been disabled for security reasons

    1.报如下错误,问题是php版本太低 php -ini 看下你的版本 http://doc2.workerman.net/how-distributed.html 参考: https://blog.c ...

  6. 错误/异常:java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind;的解决方法

    1.异常视图 2.解决方法   SocketException(JVM_Bind):套接口异常     说明:服务器端口号被占用 了  解决方法:点击 Window-->Preferences- ...

  7. Servlet发送Http请求

    今日遇到一个需求,android注册,短信验证码功能. android请求我服务端,我请求tosms.cn发送验证码短信给android,于是需要在Servlet中发送Http请求 package o ...

  8. 《剑指offer》写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

    弱菜刷题还是刷中文题好了,没必要和英文过不去,现在的重点是基本代码能力的恢复. [题目] 剑指offer 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. [思路] 直觉 ...

  9. DRF分阶段序列化细化实例

    DRF是分两阶段进行的. 如果是API接收数据,则是先进行Parser,将外界接收的bytes数据分析成python数据类型,其间涉及encoding操作,再进行序列化,将python数据类型保存进数 ...

  10. word2vec中的数学原理一 目录和前言

    最近在看词向量了,因为这个概念对于语言模型,nlp都比较重要,要好好的学习一下.把网上的一些资料整合一下,搞个系列. 主要参考:    word2vec 中的数学原理详解                ...