<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[spring boot项目maven打包指定不同Profile]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Tue, 26 May 2020 01:26:02 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	Spring Boot项目在多环境下（开发、生产或测试环境）调用不同配置文件方式:<br/><br/>我们知道，一个项目在开发环境、测试环境、生产环境，不同的环境会有不同的配置，比如数据库的配置就不同，那么怎么样才能做到，不用每次换环境的时候，都去修改这些配置呢，下面以我写的一个小案例来作说明。<br/><br/>如下图是我项目的三个配置文件，其中，application.yml是启动服务时，服务器会自动加载的配置文件，而application-dev.yml代表的是开发环境的配置文件，application-prod.yml代表的是生产环境的配置文件，后两个文件在启动服务时，服务器不会自动加载，那么在不同的环境中时怎么调用不同的文件的呢？<br/><br/><a href="https://www.heckjj.com/attachment.php?fid=190" target="_blank"><img src="https://www.heckjj.com/attachment.php?fid=190" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="300"/></a><br/><br/><span style="font-size: 18px;"><strong>方式一</strong>、修改配置文件方式</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;修改application.yml配置文件，具体内容如下图：<br/><br/><a href="https://www.heckjj.com/attachment.php?fid=191" target="_blank"><img src="https://www.heckjj.com/attachment.php?fid=191" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="600"/></a><br/><br/>这样，在启动服务时，服务器就会通过application.yml文件去调用application-dev.yml文件。同理，若active: prod,那么服务在启动时，服务器就会调用application-prod.yml文件。也就是说，在开发环境时，只需将application.yml配置文件配置为&quot;dev&quot;,而生产环境时，只需将“dev”改为“prod”就可以了。<br/><br/><br/><span style="font-size: 18px;"><strong>方式二</strong>、命令启动服务，命令中带参数方式（此方式可以没有application.yml文件）</span><br/><br/>第一步：进入到项目目录下，先用maven对项目进行打包，会在target目录下生成项目的jar包<br/><br/>第二步：进入target目录，执行命令：java -jar 生成的jar包 --spring.profiles.active=prod<br/><br/>项目就会调用application-prod.yml配置文件，即以生产环境的配置要求启动服务。同理，若是开发环境，只需将prod改为dev即可。<br/><br/><br/><span style="font-size: 18px;"><strong>方式三</strong>、为方式一的更灵活版</span><br/><br/>application.properties中填写spring.profiles.active=@activatedProperties@，这里的@activatedProperties@是一个变量对应pom文件里的环境配置。<br/><br/>下面是pom文件的配置：<br/>&lt;profiles&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;profile&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;dev&lt;/id&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;properties&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- 环境标识，需要与配置文件的名称相对应 --&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;activatedProperties&gt;dev&lt;/activatedProperties&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/properties&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;activation&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- 默认环境 --&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;activeByDefault&gt;true&lt;/activeByDefault&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/activation&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/profile&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;profile&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;test&lt;/id&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;properties&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;activatedProperties&gt;test&lt;/activatedProperties&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/properties&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/profile&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;profile&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;prod&lt;/id&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;properties&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;activatedProperties&gt;prod&lt;/activatedProperties&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/properties&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/profile&gt;<br/>&nbsp;&nbsp;&lt;/profiles&gt;<br/>在pom文件里分别配置好不同环境的文件名称，注意：&lt;activatedProperties&gt;dev&lt;/activatedProperties&gt;中的dev与配置文件名称application-dev.yml要一致<br/>activatedProperties名称对应application.yml配置文件中的spring.profiles.active=@activatedProperties@<br/><br/>当maven打包时会用pom文件里&lt;activatedProperties&gt;dev&lt;/activatedProperties&gt;中的值替换掉application.yml配置文件中的@activatedProperties@<br/><br/>下面配置maven打包插件<br/><br/>&lt;build&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;resources&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;resource&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--配置文件路径&nbsp;&nbsp;--&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;directory&gt;src/resources&lt;/directory&gt; &lt;!--这里对应项目存放配置文件的目录--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--开启filtering功能&nbsp;&nbsp;--&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filtering&gt;true&lt;/filtering&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/resource&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/resources&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugins&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugin&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;1.5.2.RELEASE&lt;/version&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;configuration&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mainClass&gt;com.duan.SpringbootMybatis.App&lt;/mainClass&gt;&lt;!--springboot启动类目录--&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/configuration&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;executions&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;execution&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;goals&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--创建一个自动可执行的jar或war文件 --&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;goal&gt;repackage&lt;/goal&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/goals&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/execution&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/executions&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/plugin&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/plugins&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/build&gt;<br/><br/>配置完成，下面我们进行打包操作，我是使用eclipse进行打包，项目pom文件右键，run as ---&gt; maven build<br/><br/><a href="https://www.heckjj.com/attachment.php?fid=192" target="_blank"><img src="https://www.heckjj.com/attachment.php?fid=192" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="300"/></a><br/><br/>观察控制台输入日志<br/><br/>或者直接输入指定为生产环境： mvn clean package -Pprod<br/><br/><br/>已经构建成功，刷新一下项目，target会生成SpringbootMybatis-0.0.1-SNAPSHOT.jar包。<br/><br/>注：上述中的application-dev.yml、application-prod.myl等只是笔者自己的案例中名字，并非所有项目都是如此，还请各位道友以实际项中目为主。<br/><br/>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] spring boot项目maven打包指定不同Profile]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>