基于maven的springboot的"过时"用法解析
作者:codecraft
这篇文章主要为大家介绍了基于maven的springboot"过时"用法示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
序
接触过许多工程,发现有一些基于maven的springboot工程还是使用maven的profile,有些"过时"了,下面简单介绍一下。
示例1
pom.xml
<profiles> <profile> <id>dev</id> <properties> <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>staging</id> <properties> <profiles.active>staging</profiles.active> </properties> </profile> <profile> <id>prod</id> <properties> <profiles.active>prod</profiles.active> </properties> </profile> </profiles> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <configuration> <target>1.8</target> </configuration> <executions> <execution> <id>copy-service-properties</id> <phase>compile</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <copy todir="target/classes/config" overwrite="true"> <fileset dir="${basedir}/src/main/resources/deploy/${profiles.active}"> <include name="*.yml"/> </fileset> </copy> </tasks> </configuration> </execution> </executions> </plugin> </plugins> </build>
src/main/resources
├── config │ ├── application.yml │ └── bootstrap.yml ├── deploy │ ├── Dockerfile │ ├── dev │ │ ├── application.yml │ │ └── bootstrap.yml │ ├── prod │ │ ├── application.yml │ │ └── bootstrap.yml │ ├── staging │ │ ├── application.yml │ │ └── bootstrap.yml │ └── test │ ├── application.yml │ └── bootstrap.yml
这种方法呢,感觉是多此一举,用application-{profile}.yml不香吗,感觉是没有用上springboot之前的maven工程的用法
示例2
pom.xml
<profiles> <profile> <id>dev</id> <properties> <app.active>dev</app.active> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>test</id> <properties> <app.active>test</app.active> </properties> </profile> <profile> <id>staging</id> <properties> <app.active>staging</app.active> </properties> </profile> <profile> <id>prod</id> <properties> <app.active>prod</app.active> </properties> </profile> </profiles>
application.yml
spring: profiles: active: @app.active@
这种用法呢,src/main/resources下面只有一个application.yml,把profile的差异放到了maven的profile中,在application.yml引用maven的profile变量,有点"少见多怪",直接application-{profile}.yml用不香吗。
小结
springboot工程已经提供了profile的特性了,其实大部分场景可以替换掉maven的profile,没必要在使用maven的profile了,不然总感觉显得有点古老和过时。
以上就是基于maven的springboot的"过时"用法的详细内容,更多关于maven的springboot的"过时"用法的资料请关注脚本之家其它相关文章!