springboot可执行jar结构
我正在尝试运行SpringBoot示例应用程序。我在webapp文件夹下的“images”文件夹中添加了两个图像(与WEB-INF的级别相同) 我创建了可执行jar,这些图像在网页上正确显示 但是,我摸不着头脑,这个图像文件夹在可执行jar中的什么地方?这些图像在lib-jar中吗 提前谢谢 更新:在另一台机器上尝试同一个jar后,问题变了。现在,我可以确认这些图像不是可执行“fat”jar的一部分,因为这些图像不会出现在网页上。更进一步说,“webapp”下的所有文件都没有打包在jar中。我将SpringBootMaven插件放在pom中,并使用“mvn包”创建jar。在我的src项目中,webapp位于src/main下(与java和resource的级别相同)。这将在以下内容中介绍: 如果应用程序将打包为jar,请不要使用springboot可执行jar结构,spring,jar,structure,executable,spring-boot,Spring,Jar,Structure,Executable,Spring Boot,我正在尝试运行SpringBoot示例应用程序。我在webapp文件夹下的“images”文件夹中添加了两个图像(与WEB-INF的级别相同) 我创建了可执行jar,这些图像在网页上正确显示 但是,我摸不着头脑,这个图像文件夹在可执行jar中的什么地方?这些图像在lib-jar中吗 提前谢谢 更新:在另一台机器上尝试同一个jar后,问题变了。现在,我可以确认这些图像不是可执行“fat”jar的一部分,因为这些图像不会出现在网页上。更进一步说,“webapp”下的所有文件都没有打包在jar中。我将
src/main/webapp
文件夹。尽管这个文件夹是一个通用的标准,但它只适用于war打包,并且如果您生成一个jar,大多数构建工具都会默默地忽略它
您应该将静态资源放在src/main/resources
中
按照给定的结构创建fat jar:
只要用任何存档工具提取jar,你就会看到它在哪里。我试过了,但失败了。我的意思是,我提取了jar根目录下的com、lib、META-INF、org和templates文件夹,并且只看到它们。像往常一样,我想我会学习新的工具跳过参考指南。再一次,我被提醒这是反模式的。jar打包将忽略webapp是有道理的。在本例中,我的胖jar包含META-INF/resources/index.jsp。我的application.properties有,spring.mvc.view.prefix=/resources/-这正确吗?@thangaveloganathan听起来像是在可执行jar中使用JSP。这是不受支持的。我们通常建议不要使用JSP。如果你真的想要或需要使用它们,那么你必须使用战争包装。
Demo
└── src
| ├── main
| │ ├── java
| │ │ └── org
| │ │ └── demo
| │ │ └── App.java
| │ └── resources
| │ └── application.properties
| | |
| | └── META-INF
| | | └── resources
| | | └── jsp
| | └── static
| | └── css
| | └── js
| |
| └── test
| └── java
| └── org
| └── demo
| └── App.java
├──── pom.xml