当前位置: 首页 > 知识库问答 >
问题:

spring boot maven不会将jsp文件打包到“fat jar”

江宏伟
2023-03-14

我使用指南中的项目结构,将css&js存储在参考资料中的静态文件夹中,将jsp文件存储在webapp/web-inf/jsp/中

但是当我在eclipse中通过“maven package”任务构建Spring Boot应用程序以fat jar时,它并没有将所有webapp文件夹打包到jar中

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/>
    </parent>
    <groupId>ru.pa4ok</groupId>
    <artifactId>csplatform</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>csplatform</name>
    <description>Remote studing web service</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

共有1个答案

夏飞掣
2023-03-14

spring boot在完成Jar打包时有一个“JSP限制”。在官方文件中说

如果您的应用程序将打包为JAR,请不要使用src/main/webapp文件夹。虽然这个文件夹是一个通用的标准,但它只能与war打包一起工作,并且如果您生成一个JAR,它将被大多数构建工具默默地忽略。

欲知更多信息,请参阅此处

<build>
     <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.2.6.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

如果其中任何一个对你不起作用,请点击此链接获取更多答案:

 类似资料:
  • 是否可以以某种方式配置Spring引导maven插件以包括来自依赖项的资源。 例如,如果在我的spring boot项目中,我有: 在这个JAR文件中有一个属性文件,如 结果1。 但是,当我构建SpringBootJAR时,这个属性文件并没有添加到。包含它的JAR包含在 然而,在我的情况下。我想将的内容提取到Spring BootJAR的引导目录中,这样就可以进行自动配置。 在现实世界中,我试图通

  • 我正在开发简单的Spring Boot MVC应用程序。虽然我已经读了很多答案,所以我仍然无法修复Spring靴找不到我的。jsp文件-它显示白标签错误页面。 > 2.LearnBookApplication。Java语言 3.ServletInitializer。Java语言 web.xml application.properties 控制器

  • 请救命!我的连接方式与我在另一个项目中所做的完全相同。我已经搜索了StackOverflow和互联网,但仍然找不到补救方法。 我尝试过的事情: > 重新启动项目和STS WebApp>参考资料>CSS>Main.css路径 link rel=“stylesheet”type=“text/css”href=“${PageContext.Request.ContextPath}/css/style.c

  • 原本注释是要用的,但只要一打包就开始报错: Could not open requirements file: [Errno 2] No such file or directory: './requirements.txt' 报错很明确就是文件找不到,不过,文件是存在的,前面copy进去,为了确保文件存在: 如下强制修改成这样,用ls查看,文件存在 用一个相似结构的项目的dockerfile 结

  • 我已经安装了 Pug(前玉)插件并添加了一个新的文件模板 创建新的.pug文件时,PhpStorm会创建一个我无法打开的文件。 我已经按照官方页面上的说明进行操作,但它没有帮助。 我错过了哪一步?任何帮助都是巨大的! 编辑: 我已经卸载了Pug插件,使缓存失效并重启。然后删除了我已经创建的模板,因为pstorm创建了一个名为“Pug/Jade File”的新模板。然后,我从上下文菜单中创建了一个新

  • 我正在使用J2EE(使用spring和JSP)建立一个网站。我有像client.jsp和user.jsp的多页。每一页都有一个页眉、一个内容和一个页脚。 因此,我想做的是在每个jsp文件(客户机或用户)中包含页眉和页脚,但每个文件都有一个特定的页眉和脚注。比方说,header_client。jsp和header_footer.jsp。 为了包括这个,我正在做的: 但是,如果此标头不存在,我想加载一