`

maven jetty plugin

阅读更多

前言: 在 maven 下测试调试时,相比较 Tomcat 、Jboss 、Jetty 而言,个人更倾向于使用 Jetty Plugin。
怎么说呢?使用 Jetty Plugin 的时候最爽的是不用你敲打包、部署,然后再启动服务器的指令,只需敲一句:mvn jetty:run
或直接点 eclipse 上的 run 按钮就完事了。而且更爽的是,你修改资源文件,Jetty 能自动扫描到并及时给予反馈进行重加载,
这对修改java文件很有帮助,不用每次修改java文件都要重启服务器,省掉了不少没必要浪费的时间。
当然,如果想要 Jetty 跑得更理想,还需要禁止 Jetty 使用映射缓存。

环境:

Maven  3.0.4
Eclipse  3.6
maven-jetty-plugin 6.1.10


项目结构:


pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation
="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.fancy</groupId>
  <artifactId>jetty-plugin-demo</artifactId>
  <packaging>war</packaging>
  <version>1.0</version>
  <name>jetty-plugin-demo Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <build>
    <finalName>jetty-plugin-demo</finalName>
    <plugins>
      <!-- Maven Jetty Plugin -->
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.10</version>
        <configuration>
          <!-- 每2秒的间隔扫描一次,实现热部署 -->
          <scanIntervalSeconds>2</scanIntervalSeconds>
        </configuration>
      </plugin>
    </plugins>
  </build>
  
</project>


index.jsp

<html>
 <body>
  <h1>Maven Jetty Plugin</h1>
  <h2>Hello World!</h2>
 </body>
</html>


选中项目,右键选择 Run As --> Maven build
Name:根据需要,自己取个名
Goals:输入要执行的 maven 命令
其余的不用管,直接点击 Run



Jetty 运行完成之后,访问:http://localhost:8080/jetty-plugin-demo/


 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

禁止 Jetty 使用映射缓存:

当你想试图去修改正在被访问的资源文件,像 CSS、JS、FTL等,这时候你修改完成想保存的时候,是保存不了的。
你必须停掉 Jetty 容器(如果是在CMD下运行的 Jetty 容器,按 Ctrl + C 停掉 Jetty),才能保存。保存完成后必须
重新启动 Jetty 容器才能看见效果。这样做无论是对修改 .css、.js、.ftl 等都非常麻烦和不爽。

究其原因,这是 Jetty 使用了内存映射文件来缓存静态文件。在Windows下面,使用内存映射文件会导致文件被锁定。
解决方案是不使用内存映射文件来做缓存。步骤如下:

根据所使用 Jetty 版本在本地的 maven 仓库中找到 Jetty 版本对应的jar包。

如:
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.10</version>
      </plugin>
    </plugins>

则需找到( 我的本地的 maven 仓库是在 D:\Repositories\Maven ):
D:\Repositories\Maven\org\mortbay\jetty\jetty\6.1.10\jetty-6.1.10.jar

用解压缩工具打开此jar包,进到:
jetty-6.1.10.jar\org\mortbay\jetty\webapp
找到webdefault.xml文件,即: jetty-6.1.10.jar\org\mortbay\jetty\webapp\webdefault.xml
解压出此文件webdefault.xml,找到:
<param-name>useFileMappedBuffer</param-name>
<param-value>true</param-value>

将 true 改成 false,以禁止使用映射缓存。

删除原jar包中的webdefault.xml文件,将修改过的webdefault.xml文件压缩进去,OK。搞定。

这样之后就能在 Jetty 运行时修改并保存资源文件。

分享到:
评论

相关推荐

    maven-jetty-plugin

    ** Maven Jetty Plugin 知识点详解 ** Maven Jetty Plugin是一款强大的工具,它将Jetty服务器集成到了Maven的构建流程中。这个插件允许开发者在开发过程中快速、便捷地运行和测试Java Web应用程序,而无需进行完整...

    maven集成jetty所需jar包maven-jetty-plugin,多版本

    本文将详细讨论如何将Jetty与Maven进行集成,并介绍关键的`maven-jetty-plugin`插件及其不同版本。 1. Maven与Jetty集成的意义: Maven通过其强大的依赖管理功能,使得项目构建变得简单和规范。而Jetty作为轻量级...

    Maven + Jetty Plugin

    "Maven + Jetty Plugin" 是一个用于快速开发和测试Java Web应用程序的组合,它结合了Maven构建工具和Jetty服务器。Maven是一个强大的项目管理工具,它简化了构建、管理和部署Java项目的过程,而Jetty则是一个轻量级...

    maven项目下用 jetty 启动热部署

    &lt;artifactId&gt;jetty-maven-plugin &lt;version&gt;9.x.x &lt;!-- 其他配置 --&gt; &lt;/plugin&gt; ``` 注意,这里的版本号需要与你的Maven和Jetty版本兼容。 2. **配置Jetty插件**:接下来,我们需配置Jetty插件,使其支持...

    jetty-maven-plugin-8.1.10.v20130312.zip

    【标题】"jetty-maven-plugin-8.1.10.v20130312.zip" 是一个用于Maven项目的Jetty服务器插件的版本包,它主要用于在开发过程中快速部署和测试Java Web应用程序。Jetty是轻量级、高性能的HTTP服务器和Servlet容器,而...

    tomcat-maven-plugin

    maven-tomcat-plugin让maven与tomcat配合得很好。它可以把应用部署到Tomcat服务器,也可以把tomcat作为内嵌服务器启动,就像jetty一样。 使用JPDA启动tomcat的远程调试功能。这样就能与eclipse配合起来,轻松地实现...

    maven-jetty-plugin-6.1.3.jar

    maven-jetty-plugin-6.1.3.jar

    maven jetty

    &lt;artifactId&gt;maven-jetty-plugin &lt;version&gt;6.1.26&lt;/version&gt; &lt;!-- 或者使用最新版本 --&gt; &lt;contextPath&gt;/myapp &lt;scanIntervalSeconds&gt;10&lt;/scanIntervalSeconds&gt; &lt;!-- 每10秒检查源代码变化 --&gt; &lt;/plugin...

    maven-jetty-plugin-6.1.7.jar

    maven-jetty-plugin-6.1.7.jar

    jetty-console-maven-plugin-1.53.zip

    【标题】:“jetty-console-maven-plugin-1.53.zip”是一个与Jetty服务器相关的Maven插件的版本包,版本号为1.53。Jetty是一款轻量级、开源的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。...

    Maven与Jetty

    例如,`maven-jetty-plugin`或`jetty-maven-plugin`允许你在开发阶段直接通过Maven命令运行和调试你的Web应用,而无需进行完整的打包和部署步骤。 要将Jetty集成到Maven项目中,你需要在你的`pom.xml`文件中添加...

    maven-jetty-plugin-6.1.25-sources.jar

    maven-jetty-plugin-6.1.25-sources.jar

    maven-jetty-plugin-6.1.26-sources.jar

    maven-jetty-plugin-6.1.26-sources.jar

    解决maven projects plugin出现红线问题

    maven projects plugin出现红线怎么办,网上给许多比较蹩脚的方案。经过研究发现一个简洁的方法,一分钟就能搞定。

    maven-jetty-jspc-plugin-6.1.25-sources.jar

    maven-jetty-jspc-plugin-6.1.25-sources.jar

    maven-jetty-jspc-plugin-6.1.22-site-component.jar

    maven-jetty-jspc-plugin-6.1.22-site-component.jar

    maven-jetty6-plugin-1.0.jar

    maven-jetty6-plugin-1.0.jar

    maven-jetty-plugin-6.1.26.jar

    maven-jetty-plugin-6.1.26.jar

    maven+jetty

    &lt;artifactId&gt;jetty-maven-plugin &lt;version&gt;9.4.43.v20210629 &lt;contextPath&gt;/your-context-path &lt;/plugin&gt; ``` 5. 运行Jetty插件:在IDEA的Maven面板中找到`jetty:run`目标,点击运行。这将启动Jetty...

Global site tag (gtag.js) - Google Analytics