`

Maven + Eclipse + Jetty 修改javascript文件怎样不需重启Jetty

 
阅读更多
使用Maven + Eclipse + Jetty 进行开发,但有一个问题:那就是如果已经运行着Jetty,在这种情况下修改.js文件,在eclipse里保存都会失败,eclipse给出的错误信息是文件被锁定。这样迫使每次都得重启Jetty,对Javascript的开发非常不方便。

原因是如果NIO被支持的话,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下面,使用内存映射文件会导致文件被锁定。解决方案是不使用内存映射文件来做缓存。如果你使用Maven,那就很简单了。步骤如下:

找到jetty.jar后解压,从中找到webdefault.xml,它在jar文件中的路径是org/mortbay/jetty/webapp/webdefault.xml。把它拷贝到项目中,比如src/test/resources/webdefault.xml.

    找到useFileMappedBuffer参数,把值设成false

<init-param>  
  <param-name>useFileMappedBuffer</param-name>  
  <param-value>true</param-value> <!-- change to false -->  
</init-param> 


在pom.xml中,设置jetty使用更新过的webdefault.xml文件

            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
				<version>6.1.10</version>
				
                <configuration>
                    <contextPath>/</contextPath>
                    <scanIntervalSeconds>3</scanIntervalSeconds>
                    <scanTargetPatterns>
                        <scanTargetPattern>
                            <directory>src/main/webapp</directory>
                            <includes>
                                <include>**/*.xml</include>
                                <include>**/*.properties</include>
                            </includes>
                        </scanTargetPattern>
                    </scanTargetPatterns>
                    <webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>
                    <defaultsDescriptor>webdefault.xml</defaultsDescriptor>
                    <connectors>
                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                            <port>9093</port>
                            <maxIdleTime>60000</maxIdleTime>
                        </connector>
                    </connectors>
                </configuration>
            </plugin>


好了,这样就解决问题了!
分享到:
评论

相关推荐

    Eclipse Maven项目中配置Jetty

    在Eclipse中配置Maven项目以使用Jetty服务器是一个常见的任务,这主要适用于开发和测试阶段,因为它提供了快速的启动和重启能力。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,广泛用于Java Web应用。...

    Maven下使用Jetty进行Debug

    当我们在Eclipse中修改HTML、CSS或JavaScript文件后,由于Jetty的热部署特性,这些修改通常会自动反映到正在运行的应用中,无需手动重启服务器。 **3.2 修改类方法后自动生效** 对于Java源代码的修改,如果涉及到...

    Maven Jetty 插件的问题(css/js等目录死锁)的解决

    然而,在使用Maven Jetty插件进行项目构建和部署时,可能会遇到一个常见问题:当修改了HTML、CSS或JavaScript文件后,这些文件被浏览器加载后会出现“死锁”现象,导致文件无法被进一步修改和保存。 #### 问题分析 ...

    [SSH+Maven+Bootstrap视频教程]_03. 项目的安装部署.zip

    1. **环境准备**:确保已安装Java JDK、Maven、IDE(如Eclipse或IntelliJ IDEA),以及可能需要的服务器环境,如Tomcat或Jetty。 2. **SSH框架集成**:导入Struts2、Spring、Hibernate的依赖,并配置相应的配置文件...

    eclipse+maven创建web项目

    Eclipse会自动生成基本的Maven项目结构,包括`pom.xml`文件,它是Maven项目的核心配置文件。 打开`pom.xml`,我们需要添加项目的依赖,特别是Web项目所需的库。对于一个基础的Web项目,我们可能需要Servlet API和...

    Eclipse Maven apache压缩包

    Eclipse的插件体系使得其可以扩展支持多种编程语言和框架,如Python、C++、JavaScript等,而Maven插件则为Eclipse带来了强大的构建和依赖管理能力。 Maven是Apache软件基金会开发的一个项目管理和综合工具,主要...

    jetty8+ 内嵌式启动运行demo

    在Jetty 8中,我们主要会用到`org.eclipse.jetty.server.Server`类,它是Jetty服务器的核心。以下是一个简单的内嵌Jetty启动示例: ```java import org.eclipse.jetty.server.Server; import org.eclipse.jetty....

    maven常用知识整理

    5. **热部署**:为了提高开发效率,Maven有热部署插件,如maven-eclipse-plugin或maven-idea-plugin,它们可以与IDE集成,实现修改后自动编译并更新到运行中的服务器。另外,maven-jetty-plugin和maven-tomcat-...

    maven项目转换WEB项目

    1. **导入Maven项目到Eclipse**:在Eclipse中选择“File” &gt; “Import” &gt; “Maven” &gt; “Existing Maven Projects”,然后导航到Maven项目的根目录,选择`pom.xml`文件导入。 2. **转换为Dynamic Web Project**:...

    Eclipse Spring Boot maven web demo 简单项目实例

    【Eclipse Spring Boot Maven Web Demo 简单项目实例】是一个实用的学习资源,旨在帮助开发者快速搭建基于Spring Boot、Maven和Eclipse的Web应用程序。这个项目实例为初学者提供了良好的起点,让他们能够理解并实践...

    jetty-6.1.2rc2.zipjetty-6.1.2rc2.zipjetty-6.1.2rc2.zipjetty-6.1.2rc2.zip

    在实际使用中,开发人员可以通过Jetty的Maven插件或Gradle插件将Jetty集成到构建流程中,实现快速的开发和测试循环。 尽管Jetty 6.1.2rc2是一个较旧的版本,对于理解Jetty的基本工作原理和特性仍然很有帮助。然而,...

    使用Eclipse创建基于Maven Web工程

    在IT行业中,开发Java Web应用时,Eclipse是一款非常受欢迎的集成开发环境(IDE),而Maven则是一个强大的项目管理工具。本篇文章将详细介绍如何在Eclipse中利用Maven创建一个Web工程,以便于管理和构建项目。 首先...

    jetty 插件

    6. **资源管理**:Jetty插件可以管理Web应用所需的静态资源,如HTML、CSS、JavaScript文件,以及图片和图标(如压缩包中的`icons`目录)。 7. **库依赖**:`lib`目录通常包含插件运行所需的各种依赖库,确保Jetty能...

    jetty嵌入式实例

    对于Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.eclipse.jetty &lt;artifactId&gt;jetty-server &lt;version&gt;9.x.y.z&lt;/version&gt; &lt;!-- 替换为最新版本 --&gt; &lt;groupId&gt;org.eclipse.jetty ...

    eclipse+WB.rar

    【标题】"eclipse+WB.rar" 指的是一个包含Eclipse集成开发环境(IDE)与Webclipse插件的压缩文件。Eclipse是全球广泛使用的开源Java IDE,它为开发者提供了编写、调试和部署Java应用程序的强大工具。而Webclipse是...

    基于jetty8 websocket的例子

    如果你的项目使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.eclipse.jetty &lt;artifactId&gt;jetty-server &lt;version&gt;8.x.y&lt;/version&gt; &lt;!-- 替换为具体版本 --&gt; &lt;groupId&gt;org.eclipse.jetty ...

    jetty-run插件下载

    Jetty Run插件是针对Java Web应用程序开发的一款实用工具,主要用在Jetty服务器上,它简化了开发过程,使得开发者能够快速启动和运行基于Jetty的Web项目。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,...

    前端开源库-jetty

    - **模块化:** Jetty的模块化设计使得开发者可以按需选择和加载功能,减少不必要的依赖,提高应用的启动速度。 **2. 前端应用** 在前端开发中,Jetty可以作为一个小型的本地服务器,用于开发和测试目的。开发者...

    Jetty Sample

    Jetty Sample是一个示例项目,它展示了如何使用Jetty服务器来构建和运行Web应用程序。Jetty是一款开源的、轻量级的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。在这个压缩包中,我们很可能...

    eclipse自动部署工具

    这对于频繁修改和测试的J2EE项目来说尤其有用,它省去了手动上传文件或重启服务器的繁琐步骤,提高了开发迭代的效率。 要使用"ForceFileSynchronic",你需要先在Eclipse中安装这个插件。通常,你可以通过Eclipse的...

Global site tag (gtag.js) - Google Analytics