通常,我们将 web 应用程序打包成 WAR 文件,然后将它部署到另外的服务器上。这样做使得我们能够在相同的服务器上处理多个项目。当 CPU 和内存有限的情况下,这是一种最好的方法来节省资源。
然而,事情发生了转变。现在的计算机硬件相比起来已经很便宜了,并且现在的注意力大多转移到服务器配置上。部署中对服务器配置的一个细小的失误都会导致无可预料的灾难发生。
Spring 通过提供插件来解决这个问题,也就是 spring-boot-maven-plugin 来打包 web 应用程序到一个额外的 JAR 文件当中。为了引入这个插件,只需要在 pom.xml 中添加一个 plugin 属性:
1 <plugin>
2 <groupId>org.springframework.boot</groupId>
3 <artifactId>spring-boot-maven-plugin</artifactId>
4 </plugin>
有了这个插件,我们会在执行 package 步骤后得到一个 JAR 包。这个 JAR 包包含所需的所有依赖以及一个嵌入的服务器。因此,我们不再需要担心去配置一个额外的服务器了。
我们能够通过运行一个普通的 JAR 包来启动应用程序。
注意一点,为了打包成 JAR 文件,pom.xml 中的 packgaing 属性必须定义为 jar:
<packaging>jar</packaging>
如果我们不定义这个元素,它的默认值也为 jar。
如果我们想构建一个 WAR 文件,将 packaging 元素修改为 war:
<packaging>war</packaging>
并且将容器依赖从打包文件中移除:
1 <dependency>
2 <groupId>org.springframework.boot</groupId>
3 <artifactId>spring-boot-starter-tomcat</artifactId>
4 <scope>provided</scope>
5 </dependency>
执行 Maven 的 package 步骤之后,我们得到一个可部署的 WAR 文件。
我已经制作了我的网络应用程序,我想把它放在互联网上。我听说用户可以使用 .war 文件在 cPanel 中部署 Web 应用程序。我一直在搜索这个,任何类型的教程或任何有关如何做到这一点的信息。但是没有一个真正告诉你如何做到这一点,你只会找到关于如何在Tomcat或Glassfish上部署的教程。我在这里错过了什么点吗?一旦我的 Web 应用程序打包为 .war 文件,我如何将它放到互联网上?如果
我正在尝试部署一个示例。war文件到运行Windows/Tomcat 9的Azure应用程序服务。我正在将文件上载到wwwroot/webapps文件夹。文件正在解包,但未创建名为sample的子文件夹。我已经启用了日志记录功能,但是里面没有任何有用的东西。有什么想法吗? 我试图使用的示例war文件来自apache tomcat页面。https://tomcat.apache.org/tomcat
我有带pom的spring boot应用程序。xml 所以,我需要构建war并将其部署到websphere上。但部署后,会出现错误消息: 脚本计数=1048576 ************* 结束显示当前环境 ************* [9/20/18 18:35:17:893 MSK] 00000089 ecs Wcom.ibm.ws.ecs.internal.scan.context.imp
我无权访问weblogic.deployer和web管理GUI(如果Linux服务器版本中存在) 我可以在weblogic(windows版本)中部署WAR文件。应用程序文件应该可以。