使用Maven构建JAR。SpringMVC应用程序。静态资产,如JS、JSP、CSS没有内置到JAR中

使用Maven构建JAR。SpringMVC应用程序。静态资产,如JS、JSP、CSS没有内置到JAR中,maven,spring-mvc,jar,spring-boot,Maven,Spring Mvc,Jar,Spring Boot,我的目标是构建一个带有嵌入式Tomcat服务器的可执行JAR来运行我的SpringMVC应用程序 您可以在此处查看我的项目目录结构的屏幕截图: 当我运行“mvn clean install”时,会生成一个新的JAR并可运行。我执行JAR并看到Spring消息和我的所有端点 当我尝试转到localhost:8080/ANYENDPOINT时,我看到了Spring提供的一个通用404页面(告诉我没有映射/error端点) 查看日志,我发现以下错误: 2015-03-17 16:27:10.948

我的目标是构建一个带有嵌入式Tomcat服务器的可执行JAR来运行我的SpringMVC应用程序

您可以在此处查看我的项目目录结构的屏幕截图:

当我运行“mvn clean install”时,会生成一个新的JAR并可运行。我执行JAR并看到Spring消息和我的所有端点

当我尝试转到localhost:8080/ANYENDPOINT时,我看到了Spring提供的一个通用404页面(告诉我没有映射/error端点)

查看日志,我发现以下错误:

2015-03-17 16:27:10.948  INFO 12160 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]:Initializing Spring FrameworkServlet 'dispatcherServlet' 2015-03-17 16:27:10.949  INFO 12160 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started 
2015-03-17 16:27:10.987  INFO 12160 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet :FrameworkServlet 'dispatcherServlet': initialization completed in 38 ms 2015-03-17 16:27:11.085  WARN 12160 --- [nio-8080-exec-1] o.s.web.servlet.PageNotFound : No mapping found for HTTP request with URI [/WEB-INF/jsp/homepage.jsp] in DispatcherServlet with name 'dispatcherServlet'
它看不到我的“homepage.jsp”。但如果你看看我的目录结构,它就在那里。然而,当我查看我构建的JAR的内容时,我发现我的项目中没有一个静态文件进入我的JAR。以下是已编译JAR内容的屏幕截图:

我希望将我的“webapp”文件夹包含在构建的JAR中,并可供我的Spring应用程序使用,以避免我上面详述的错误

我对整个部署工作都很陌生。我总是在Eclipse中进行开发工作,在外部Tomcat服务器上验证更改,并推送代码。现在我想学习如何对抗部署怪物。请让我知道我正在做的任何事情是否只是单纯的愚蠢

链接到与我的问题相关的逐步资源也会有所帮助

这是我的POM:

<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 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.github.xxxx</groupId>
    <artifactId>xxxx</artifactId>
    <packaging>jar</packaging>
    <version>1.8-SNAPSHOT</version>
    <name>Maven Webapp</name>
    <url>http://maven.apache.org</url>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.2.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
        </dependency>
        <!-- Spring Security -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>StudentEnrollmentWithMyBatis</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.2.2</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-scm-plugin</artifactId>
                        <version>1.8.1</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

4.0.0
com.github.xxxx
xxxx
罐子
1.8-1
Maven Webapp
http://maven.apache.org
org.springframework.boot
spring启动程序父级
1.2.2.1发布
朱尼特
朱尼特
测试
org.mybatis
mybatis
3.1.1
org.mybatis
mybatis泉
1.2.2
org.springframework
spring上下文支持
org.springframework
弹簧试验
测试
mysql
mysql连接器java
javax.servlet
jstl
org.springframework
SpringWebMVC
org.springframework
弹簧芯
org.springframework
SpringJDBC
javax.servlet
javax.servlet-api
javax.servlet.jsp
jsp api
2.1
假如
javax.validation
验证api
1.1.0.1最终版本
org.apache.commons
commons-lang3
3.3.2
org.hibernate
休眠验证器
org.springframework.security
spring安全网
org.springframework.security
spring安全配置
com.fasterxml.jackson.core
杰克逊核心
com.fasterxml.jackson.core
杰克逊数据绑定
org.springframework.boot
弹簧靴起动器
org.springframework.boot
弹簧启动机tomcat
用Mybatis进行学生注册
org.springframework.boot
springbootmaven插件
org.apache.maven.plugins
maven发布插件
2.2.2
org.apache.maven.plugins
maven scm插件
1.8.1
org.apache.maven.plugins
maven编译器插件
1.8
1.8

对于使用Spring Boot创建可执行jar,您构建应用程序的方式是不正确的

正如Spring Boot文档的一部分所述,您需要将静态资产移动到以下位置之一:
/static
/public
/resources
/META-INF/resources


此外,正如前面提到的,嵌入式servlet容器与JSP的配合也不太顺畅。我建议您使用一个无缝开箱即用的模板引擎

你在用弹簧靴,是吗?