Ars*_*jum 20 spring jsp maven spring-boot
我知道这可能听起来很愚蠢但是我无法理解mvn spring-boot:run和java -jar(.jar文件使用mvn install生成的)之间的区别
我有一个带有jsp页面的spring boot应用程序/src/main/resources/META-INF/resources/WEB-INF/.如果我使用mvn spring-boot:run这些页面是服务的.但是,如果我使用java -jar这些页面的应用程序找不到.
我正在处理的应用程序位于https://github.com/ArslanAnjum/angularSpringApi
更新:它适用于spring boot 1.4.2.RELEASE,而我打算使用最新版本,即1.5.8.RELEASE.
更新:我解决了这个问题,将jsps放在src/main/webapp/WEB-INF/views /中,并将包装类型更改为war,然后使用java -jar target/myapp.war运行此war并立即正常工作.
Pie*_* B. 11
简短回答:spring-boot:run是作为Maven构建的一部分运行的steroïdjava -jar命令,确保将所有必需参数传递给您的应用程序(例如资源).还将确保在运行应用程序之前通过执行生命周期目标来编译项目.spring-boot:runtest-compile
答案很长:
运行时java -jar,将启动一个新的JVM实例,其中包含您传递给此JVM的所有参数.例如,使用Spring doc示例
java -Xdebug -Xrunjdwp:server=y, \
transport=dt_socket, address=8000, suspend=
-jar target/myproject-0.0.1-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
您将使用给定参数启动一个全新的JVM.您需要确保在命令行中包含所需的所有内容,例如类路径元素,应用程序参数,JVM选项等.
运行时mvn spring-boot:run,启动Maven构建,该构建将:
test-compile周期的目标,默认情况下它会resources:resources,compiler:compile,resources:testResources,compiler:testCompileMaven的资源和编译器插件的目标.target/classes文件夹可能包含您的应用程序所需的资源和库,您的Maven依赖项等.fork和agent参数按照:
我在/ src/main/resources/META-INF/resources/WEB-INF /中有一个带有jsp页面的spring启动应用程序.如果我使用mvn spring-boot:运行这些页面就可以了.但如果我使用java -jar,应用程序找不到这些页面.
这是因为该mvn spring:boot命令将确保您target/classes的应用程序运行时您的文件夹存在于Classpath中.编译后,此文件夹将包含target/classes/META-INF/resources/WEB-INF其他内容.然后,您的应用可以META-INF/resources/WEB-INF在被问到时查找并加载它们.当您运行java -jar命令时,此文件夹可能不在类路径中,您的应用程序无法找到您的资源.(这些资源是src/main/resources在resources:resources目标期间从文件夹中复制的)
要使用您的java -jar命令获得类似的结果,您必须在类路径中包含您的资源,例如javar -jar myapp.jar -cp $CLASSPATH;/path/to/my/project/target/classes/
| 归档时间: |
|
| 查看次数: |
10075 次 |
| 最近记录: |