java - 当前目录中的 java WAR 应用程序的开发服务器,没有 sudo

标签 java tomcat war

在 Rails 和大多数现代 Web 框架中,我可以通过使用单个简单命令 (rails server) 运行开发服务器并访问浏览器来轻松地以交互方式开发 Web 应用程序。

对于 Java WAR 应用程序,我能找到的运行它的唯一方法是安装 tomcat,构建并将应用程序复制到它的 webapps 文件夹中,这需要 sudo。

有没有更简单的方法来运行此类 WAR 应用程序进行开发而无需 sudo,并且无需复制目录(这特别糟糕,因为 webapps 文件夹随安装而变化)?

基于保存构建的 inotify 会更好,这样我就可以编辑文件并在重新加载浏览器后立即看到结果。

我并不局限于使用 Tomcat:任何能够运行 WAR 文件的 Servlet/JSP 实现都适合我。

最佳答案

使用 Maven

如果您已经在使用 Maven 构建您的项目,那么最简单的途径可能是 Jetty Maven plugin .

首先,将其添加到您的 pom.xml 中:

<plugin>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>9.2.7-SNAPSHOT</version>
</plugin>

然后您可以从命令行运行 Jetty 服务器:

mvn jetty:run

这很像 Rails,因为它在您的控制台中启动服务器。它会监视对您的应用程序源文件或配置文件的更改,并在必要时重新加载。

sudo 没有问题,因为您没有将 war 文件打包和部署到其他地方的 tomcat 实例。相反,它直接从 Maven 创建的输出目录将您的应用程序作为分解的 war 文件运行。

但是,我很欣赏这听起来比实际上更容易 - 大部分工作很可能是将您的项目转换为 Maven...

使用独立 Jetty 自动部署 Web 应用

如果您不想将项目移交给 Maven,另一种方法是使用 Jetty 的 automated web app deployment .

关于java - 当前目录中的 java WAR 应用程序的开发服务器,没有 sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27899442/

相关文章:

java - 手动解析来自tomcat中的put请求的参数

java - NodeJS 服务器到 Tomcat 服务器的 CORS 问题

java - Docker tomcat 编辑扩展的 war 文件

java - 可运行 jar 中的 ElasticSearch : lucene problems

java - String.equals 与 foreach 和 for 循环

Java:Swing JComboBox - 是否可以隐藏项目?

grails - 在weblogic服务器10.3.6上部署grails项目大战时,由于 quartz 调度程序导致内存不足错误

java - 如何解决 Java Swing 登录窗口中的这些可视化问题?

java - tomcat中的 session 迁移/复制

jar - 将 Spring Boot 应用程序部署到 AWS Beanstalk