首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring boot生成的jar文件只在项目的根目录中工作

Spring boot生成的jar文件只在项目的根目录中工作
EN

Stack Overflow用户
提问于 2017-11-21 09:22:00
回答 1查看 573关注 0票数 0

我是Spring boot的新手,我认为这个问题非常基础。

我使用Spring Boot创建了一个应用程序,在开发环境中一切正常。但是,当我将jar文件从目标目录复制到另一台机器并运行"java -jar“时,它不会呈现jsp页面,错误如下:

代码语言:javascript
复制
There was an unexpected error (type=Not Found, status=404)

当我将src文件夹从项目根目录复制到相同的位置时,它工作正常。

jar文件似乎只是从项目的根开始工作。

以下是我的配置:

代码语言:javascript
复制
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

                <!-- Spring Boot Section -->
        <!-- Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </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>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                </resource>
                <resource>
                    <directory>src/main/webapp</directory>
                </resource>
            </resources>

            <plugins>

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

和我的项目结构:

我在命令行中运行以下命令:

代码语言:javascript
复制
mvn clean package

我的目标目录中有以下内容:

我可以使用以下命令运行应用程序

代码语言:javascript
复制
java -jar target/springboot-in-10-steps-0.0.1.jar 

应用程序按预期工作,并呈现欢迎页面。

当我转到目标目录并运行相同的命令时:

代码语言:javascript
复制
java -jar springboot-in-10-steps-0.0.1.jar 

应用程序启动,但它不会呈现欢迎页面。

当我将src复制到目标时,一切都很好,并且我可以看到欢迎页面。Spring boot似乎没有在jar文件中找到WEB-INF/jsp目录。

我是不是在spring boot configuration或application.properties中遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-11-22 06:47:46

我可以通过将打包从jar更改为war来修复它,有趣的是,这是有效的:

代码语言:javascript
复制
java -jar springboot-in-10-steps-0.0.1.war 

我认为有一些方法可以使用重新打包特性来更改生成的jar文件中的文件和文件夹的结构。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47403743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档