在Spring Boot开发中,通过Maven构建项目依赖是一件比较舒心的事,可以为我们省去处理冲突等大部分问题,将更多的精力用于业务功能上。近期在项目中,由于项目集成了其他外部系统资源文件,需要根据不同的环境实现加载不同的JS资源文件,处理这个问题首先想到的便是通过判断当前环境实现动态加载JS,但是,在应用打包的时候已经明确了部署环境,对于静态资源的引用也是确定的,为何不在执行打包的过程中指定引用的资源路径?没错,尤其在通过Spring Boot的Maven打包时,可以通过简单的几行代码来实现实现。下面给出一个简单的例子,比如,在html页面我们需要动态的引入一个JS,JS的路径分别为http://www.cnblogs.com/funnyboy0128/test.js和http://www.cnblogs.com/funnyboy0128-test/test.js,假设分别对应到生产环境和开发环境,则处理如下:

1、pom文件如下:

<build>
  <plugins>
    <plugin>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
  
     <!-- mavne打包动态修改替换占位符 -->
  <resources>  
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>  
    </resource>
  </resources>
</build>

<profiles>
  <profile>
    <id>dev</id>
    <properties>
      <funnyboy.env>http://www.cnblogs.com/funnyboy0128-test</funnyboy.env>
    </properties>
  </profile>

  <profile>
    <id>pro</id>
    <properties>
      <funnyboy.env>http://www.cnblogs.com/funnyboy0128</funnyboy.env>
    </properties>
  </profile>

</profiles>

2、资源 文件,例如xx.html中引用JS如下:

<script type="text/javascript" src="@funnyboy.env@/test.js"></script>

3、打完包测试一下:

mvn package -Pdev后查看应用包的xx.html,内容如下:<script type="text/javascript" src="http://www.cnblogs.com/funnyboy0128-test/test.js"></script>

mvn package -Ppro后查看应用包的xx.html,内容如下:<script type="text/javascript" src="http://www.cnblogs.com/funnyboy0128/test.js"></script>

经过测试OK。

Spring Boot使用Maven打包替换资源文件占位符的更多相关文章

  1. Spring boot 国际化自动加载资源文件问题

    Spring boot 国际化自动加载资源文件问题 最近在做基于Spring boot配置的项目.中间遇到一个国际化资源加载的问题,正常来说只要在application.properties文件中定义 ...

  2. Spring Boot 使用maven打包成jar

    1.application.properties加入如下配置 server.port= 2.修改pom.xml <?xml version="1.0" encoding=&q ...

  3. spring boot项目maven打包可执行JAR

    在pom.xml中添加如下配置: <!-- 打包可执行jar包 --> <plugin> <groupId>org.springframework.boot< ...

  4. Spring boot项目maven的profile多环境配置不自动替换变量的问题解决

    Spring boot项目maven的profile多环境配置不自动替换变量的问题解决   在网上找了好久,配置都很简单,可是我的程序就是不能自动替换变量,最终单独测试,发现原来是引用spring b ...

  5. Maven学习-处理资源文件

    在前面两篇文章中,我们学习了Maven的基本使用方式和Maven项目的标准目录结构.接下来,我们来看下Maven是如果管理项目中的资源文件的. Java项目的资源文件,主要用于存储系统的配置信息,以及 ...

  6. Spring Boot(十二):spring boot如何测试打包部署

    Spring Boot(十二):spring boot如何测试打包部署 一.开发阶段 1,单元测试 在开发阶段的时候最重要的是单元测试了,springboot对单元测试的支持已经很完善了. (1)在p ...

  7. (转)Maven学习-处理资源文件

    转自:http://www.cnblogs.com/now-fighting/p/4888343.html 在前面两篇文章中,我们学习了Maven的基本使用方式和Maven项目的标准目录结构.接下来, ...

  8. Spring Boot的Maven插件Spring Boot Maven plugin详解

    Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Mave ...

  9. spring boot和maven的约定大于配置体现在哪些方面

    spring boot和maven的约定大于配置体现在哪些方面? 两者都遵从了约定大于配置的路线 约定优于配置体现点: 1.maven的目录文件结构 1)默认有resources文件夹,存放资源配置文 ...

随机推荐

  1. 如何在新工程中添加两个不同版本的的echarts库

    emmmmm.....标题我就觉得起的很变态.闲话不多说,先说出现的背景吧--. 因为业务上的需求,跟一个硬件对接,要做大屏展示大厅客流热力图分布(背景图是客户那边给的).然后这个机子传过来的数据就可 ...

  2. SQL内模糊查询语句拼接时单引号'问题

    下面以存储过程查询所有为例,非存储过程(或不是查询所有将*替换为你想要查询的列即可)更为简单, 语法:select * from 表名 where 列名like'%条件%' 拼接后的set @变量名 ...

  3. LeetCode算法题-Rotated Digits(Java实现)

    这是悦乐书的第316次更新,第337篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第185题(顺位题号是788).如果一个数字经过180度旋转后,变成了一个与原数字不同的 ...

  4. pyquery 学习

    pyquery 是python仿照jQuery的严格实现,语法与jQuery几乎完全相同,所以对于学过前端的朋友们可以立马上手,没学过的小朋友也别灰心,我们马上就能了解到pyquery的强大. 1 安 ...

  5. markdown 基本操作

    无序列表:输入-之后输入空格有序列表:输入数字+“.”之后输入空格任务列表:-[空格]空格 文字标题:ctrl+数字表格:ctrl+t生成目录:[TOC]按回车选中一整行:ctrl+l选中单词:ctr ...

  6. window下编译jcef

    自行编译jcef过程中遇到了一些问题,现在记录如下. 参考的主要文章是jcef的官方介绍: https://bitbucket.org/chromiumembedded/java-cef/wiki/B ...

  7. Php如何返回json数据,前后端分离的基本解决方案

    php返回json,xml,JSONP等格式的数据 返回json数据: header('Content-Type:application/json; charset=utf-8'); $arr = a ...

  8. 用pyinstaller打包python程序,解决打包时的错误:Cannot find existing PyQt5 plugin directories

    解决方法就是用everything搜索PyQt5,找到 /Library/plugins路径下的PyQt5文件夹,将里面的dll动态库pyqt5qmlplugin.dll复制出来 按照错误提示的路径, ...

  9. 死磕 java集合之LinkedHashSet源码分析

    问题 (1)LinkedHashSet的底层使用什么存储元素? (2)LinkedHashSet与HashSet有什么不同? (3)LinkedHashSet是有序的吗? (4)LinkedHashS ...

  10. 【Android Studio安装部署系列】一、JDK开发环境搭建

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio安装后自带jre,这个自带jre的版本号肯定比最新的版本号要小. 但是如果项目中没有用到新版本jdk的特 ...