【问题标题】:Deploy Java Maven application部署 Java Maven 应用程序
【发布时间】:2018-02-18 11:02:05
【问题描述】:

我正在使用带有子模块的 maven 从 Spring Boot Rest 项目部署到本地 tomcat 服务器。使用命令mvn tomcat7: deploy,部署成功,但是在访问本地服务器并尝试访问项目时出现404错误代码。

我的架构是:

/雷达车载应用

  / 服务

  / api

  / dao

  pom.xml

部署的结果是:

libs文件夹中是所有压缩成jar文件的子模块,以及项目的依赖

我已经用 java 编写代码多年了,但我之前从未做过任何部署...是否缺少为项目工作设置一些东西?还是部署做错了?

【问题讨论】:

  • 因为它是一个Spring Boot 应用程序,它已经嵌入了一个Tomcat。您不需要显式部署到 Web 服务器。您可以通过从父目录调用以下命令来启动应用程序,mvn spring-boot:runjava -jar <my.jar>
  • 但是,它在生产服务器中是如何工作的?我一直在使用 spring-boot 来开发本地应用程序,但我参与了一个项目,该应用程序需要部署在现有的 tomcat 8 服务器中,所以我试图在本地进行此操作以学习之前实施
  • @BrunoCésar 请检查现有的 Stack Overflow 响应 here
  • @ibasak 我按照这些步骤操作,部署到 tomcat 没问题,但是当我尝试从 localhost 访问项目时,出现 404 错误,如上所述。

标签: java spring-boot maven-2 maven-3


【解决方案1】:

因为它已经有一个内置的网络服务器,所以直接运行它怎么样。

从您的项目根目录运行以下命令:mvn spring-boot:run

来源:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-running-your-application.html


如果你愿意,你也可以部署为战争:https://www.mkyong.com/spring-boot/spring-boot-deploy-war-file-to-tomcat/

【讨论】:

  • 这就是你在生产中运行它的方式。它的意图是作为微服务运行。如果你在现有的 Tomcat 上运行它,你将违背它的目的。你还想这样做吗?编辑:您可以在构建后从构建目录中提供的 jar 将其作为 java 应用程序执行。
  • 绝对不是!它完全可以在容器中运行,并且专为两种用途而设计。
  • 我对这个过程的工作方式有点困惑..假设我有一台本地机器,我可以在其中编写所有东西......之后我必须做什么?将我的代码复制到生产服务器并运行 mvn spring-boot:run?
  • 好的,假设你已经完成了你的代码,然后你运行:mvn package.这将在目标目录中为您提供一个 jar 文件。将该 jar 移动到您的生产环境并在那里运行它。这是一个非常简单的解释。在更真实的企业场景中,您通常拥有一个 jenkins 服务器,它会继续集成并继续部署您的应用程序,这将为您节省测试和传输的手动工作。
  • 如果我有一个多模块应用程序,每个模块都会有你自己的 jar 文件?
猜你喜欢
  • 2013-03-13
  • 1970-01-01
  • 2015-07-02
  • 2016-09-13
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
相关资源
最近更新 更多