在 Eclipse 中从 Spring:boot 项目创建 war 文件
Create war file from Spring:boot project in Eclipse
我是 Spring Boot 的新手,我已经完成了一个在我的本地主机上运行良好的应用程序。正如我被告知要将它部署在我的本地主机之外,例如 webbhotel 或 simular 我需要将项目导出为 war 文件而不是 jar 文件。
更新!!
我 运行 项目作为 Spring 在 Spring Initialzr 中生成并使用 Eclipse 作为 IDE.
的项目
在 Eclipse 中,我遵循了这些步骤
<packaging>war</packaging>
和
<dependencies>
<!-- … -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- … -->
</dependencies>
来自 Spring 引导参考页面
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file
在我的项目中我使用
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
我是否需要添加 sprinng-boot-starter-tomcat 依赖项并添加 provided on 以及 tomcat-embed-jasper 以便我的依赖项像这样?
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
当我尝试在 Eclipse 中导出到 war 文件时,Eclipse 找不到我的项目。如果我尝试导出 Java>JAR FILE 它可以找到它,但如果我尝试导出 Web>WAR FILE
则找不到
有谁知道我做错了什么以及是否需要导出到 WAR 文件以部署到外部服务器?
您需要在您的@SpringBootApplication 中扩展 ****SpringBootServletInitializer****
您不需要为 war 文件生成添加 ****sprinng-boot-starter-tomcat**** 依赖项
在pom.xml
中使用以下配置
<packaging>war</packaging>
为您的项目配置构建路径 select JDK
右键单击项目 > 运行 As > Maven Install
它将在目标文件夹中生成 war 文件。
复制此 war 并部署到任何 web/application 服务器(我已将其重命名为 demo.war)。
您可以使用您的主机名后跟端口和应用程序名称来访问该应用程序。
要在 STS(Spring 工具套件)中生成 WAR 文件:
运行 作为-> Maven 安装
如果您想将 spring 引导项目部署为 war 文件,您需要执行三个步骤:
扩展 SpringBootServletInitializer
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
}
如果你使用多个主class然后定义启动一个
<start-class>com.javavogue.DemoApplication</start-class>
将包装更新为 war pom.xml
packaging war packaging
将嵌入式 servlet 容器标记为已提供。在 pom 文件中。
在 pom.xml
中更改为 <packaging>war</packaging>
后。
使用命令:mvn package
您也可以通过选择菜单继续File -> Export -> Web -> War file
我通过以下步骤生成了一个 war 文件:
- 添加以上依赖。
- 打开命令提示符。
cd
进入你的项目目录。
- 运行 命令:
mvn clean install
.
然后目标目录下会生成一个war文件
如果你使用的是maven,你可以添加标签来指定我们要创建的类型——jar或者war。之后,在 sts 中触发 Maven 构建并指定目标 - 全新安装并指定要 运行 构建的线程数。如果你想跳过测试用例,你可以给 skipTest =true,或者如果你从命令提示符到 运行,你可以给 -Dmaven.test.skip=true。
完成后,将在目标文件夹下生成 war 文件。 (除非我们指定特定的部署文件夹)
我是 Spring Boot 的新手,我已经完成了一个在我的本地主机上运行良好的应用程序。正如我被告知要将它部署在我的本地主机之外,例如 webbhotel 或 simular 我需要将项目导出为 war 文件而不是 jar 文件。
更新!! 我 运行 项目作为 Spring 在 Spring Initialzr 中生成并使用 Eclipse 作为 IDE.
的项目在 Eclipse 中,我遵循了这些步骤
<packaging>war</packaging>
和
<dependencies>
<!-- … -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- … -->
</dependencies>
来自 Spring 引导参考页面 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file
在我的项目中我使用
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
我是否需要添加 sprinng-boot-starter-tomcat 依赖项并添加 provided on 以及 tomcat-embed-jasper 以便我的依赖项像这样?
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
当我尝试在 Eclipse 中导出到 war 文件时,Eclipse 找不到我的项目。如果我尝试导出 Java>JAR FILE 它可以找到它,但如果我尝试导出 Web>WAR FILE
则找不到有谁知道我做错了什么以及是否需要导出到 WAR 文件以部署到外部服务器?
您需要在您的@SpringBootApplication 中扩展 ****SpringBootServletInitializer****
您不需要为 war 文件生成添加 ****sprinng-boot-starter-tomcat**** 依赖项
在pom.xml
中使用以下配置<packaging>war</packaging>
为您的项目配置构建路径 select JDK
右键单击项目 > 运行 As > Maven Install
它将在目标文件夹中生成 war 文件。
复制此 war 并部署到任何 web/application 服务器(我已将其重命名为 demo.war)。
您可以使用您的主机名后跟端口和应用程序名称来访问该应用程序。
要在 STS(Spring 工具套件)中生成 WAR 文件: 运行 作为-> Maven 安装
如果您想将 spring 引导项目部署为 war 文件,您需要执行三个步骤:
扩展 SpringBootServletInitializer
@SpringBootApplication public class DemoApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(DemoApplication.class); } }
如果你使用多个主class然后定义启动一个
<start-class>com.javavogue.DemoApplication</start-class>
将包装更新为 war pom.xml
packaging war packaging
将嵌入式 servlet 容器标记为已提供。在 pom 文件中。
在 pom.xml
中更改为 <packaging>war</packaging>
后。
使用命令:mvn package
您也可以通过选择菜单继续File -> Export -> Web -> War file
我通过以下步骤生成了一个 war 文件:
- 添加以上依赖。
- 打开命令提示符。
cd
进入你的项目目录。- 运行 命令:
mvn clean install
.
然后目标目录下会生成一个war文件
如果你使用的是maven,你可以添加标签来指定我们要创建的类型——jar或者war。之后,在 sts 中触发 Maven 构建并指定目标 - 全新安装并指定要 运行 构建的线程数。如果你想跳过测试用例,你可以给 skipTest =true,或者如果你从命令提示符到 运行,你可以给 -Dmaven.test.skip=true。 完成后,将在目标文件夹下生成 war 文件。 (除非我们指定特定的部署文件夹)