【问题标题】:How do I prevent Maven's spring-boot plugin from copying static resources to target?如何防止 Maven 的 spring-boot 插件将静态资源复制到目标?
【发布时间】:2016-05-29 14:29:24
【问题描述】:

我最近更新了笔记本电脑上的操作系统 (Linux Mint 17.1 => 17.3),现在当我使用

运行我的项目时
mvn spring-boot:run

静态资源被复制到目标文件夹,本质上是缓存它们。因此,我必须完全反弹服务器才能看到对反映在浏览器中的静态资源所做的更改。

在我更新笔记本电脑之前情况并非如此。我也发现是这个项目独有的,其他spring-boot项目不受影响。

在 Eclipse 中运行时,无论是在正常模式还是在调试模式下,我也无法获取要更新的静态资源。

一些附加信息:

Java 版本:1.7
春季启动版本:1.3.2
spring-boot maven 插件版本:1.3.2
Maven 版本:3.3.9

有什么想法吗?

【问题讨论】:

  • 您刚刚升级到 Boot 1.3 了吗?您应该查看新的开发工具和相关更改。

标签: java linux maven spring-boot hotswap


【解决方案1】:

在 spring-boot maven 插件中显式设置 addResources 配置项似乎可以解决此问题。 pom 文件中的插件声明如下所示:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <addResources>true</addResources>
    </configuration>        
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

有趣的是,添加 spring-boot-devtools 依赖项并不能解决此问题,尽管文档特别提到它会与 addResources 配置项做同样的事情。

【讨论】:

  • 这在使用mvn spring-boot:run 在命令行上运行时有效,但在使用 Spring Boot 配置时,IntelliJ 不会使用此选项获取更改。执行Make Module 将重新加载更改,但这并不理想。
  • 我使用 eclipse,但我相信 IntelliJ 也可以做到这一点。您可以创建一个使用 spring-boot:run 目标的 Maven 运行配置。这也允许您使用 IDE 的调试工具并保持 spring-boot:run.. 的好处
  • 是的,我也使用了这种方法。给定here 有一个更好的解决方案,它使 IntelliJ 自动重新加载资源
猜你喜欢
  • 1970-01-01
  • 2018-07-31
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-20
  • 1970-01-01
相关资源
最近更新 更多