【技术贴】解决使用maven jetty启动后无法加载修改过后的静态资源

 

如何使用jetty自动热部署修改后的所有文件,比如js,jpg,class等,哇咔咔 太爽啦比tomcat舒服多了。

 

jetty模式是不能修改js文件的,比如你现在调试前端js,发现在myeclipse/eclipse的源码里面无法修改文件,点都不让你点,所以,你只能采用一些办法,更改jetty的模式配置。

Look:

1.从jetty.jar中解出webdefault.xml(位于org.mortbay.jetty.webapp包下)这个文件,在<servlet>节点下把这个useFileMappedBuffer参数设为false,大概就在153行左右,外国人写的N多注释结束的20行之后。

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

2.把修改后的webdefault.xml文件放到一个地方,随便放,我放在了src/main/resources下了

3.修改你的maven核心pom.xml文件

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>7.3.0.v20110203</version>
    <configuration>
        <scanIntervalSeconds>10</scanIntervalSeconds>
        <webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>
        <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
        <webAppConfig>
            <contextPath>/report</contextPath>
        </webAppConfig>
    </configuration>
</plugin>

webDefaultXml : 我们在第一步修改好的xml文件

webAppSourceDirectory :你的js,css的父级目录,目的是动态部署到jetty你的静态文件。

webAppConfig : 工程根目录,目的是为了编译java源码后自动部署到jetty,爽吧,不用部署了,自动热部署哦~~ ctrl + s 之后你就可以在浏览器观看效果咯~~

4.直接项目右键 运行maven的命令 jetty:run

控制台 :

[INFO] Started Jetty Server

[INFO] Starting scanner at interval of 10 seconds.

就可以了,随便修改吧,你的项目文件就听你的话了。。太爽了。

 

5.附录我所有的pom文件

<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.riambsoft</groupId>
    <artifactId>report</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>report</name>
    <url>http://www.riambsoft.com</url>
    <dependencies>

        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>1.8.1</version>
        </dependency>
        <!-- jasperreports end -->

        <dependency>
            <groupId>com.oracle.driver</groupId>
            <artifactId>jdbc-driver</artifactId>
            <version>10g</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-archiver</artifactId>
            <version>1.0-alpha-7</version>
        </dependency>

        <dependency>
            <groupId>net.sf.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>2.1</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-utils</artifactId>
            <version>1.4.7</version>
        </dependency>

        <dependency>
            <groupId>com.riambsoft</groupId>
            <artifactId>rsclient.web</artifactId>
            <version>1.0.0_without_RS10</version>
        </dependency>

    </dependencies>
    <build>
        <finalName>report</finalName>
        <plugins>

            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>7.3.0.v20110203</version>
                <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>
                    <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
                    <webAppConfig>
                        <contextPath>/report</contextPath>
                    </webAppConfig>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.25</version>
                <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>
                    <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <server>tomcat</server>
                    <url>http://localhost:8080/manager/html</url>
                    <path>/report</path>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>javadoc</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- 测试覆盖率分析插件 -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <formats>
                        <format>html</format>
                        <format>xml</format>
                    </formats>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>cobertura</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>
    <description></description>
</project>

2013年7月25日10:15:05

落雨

qq 394263788

 

时间: 2024-09-25 00:46:40

【技术贴】解决使用maven jetty启动后无法加载修改过后的静态资源的相关文章

【技术贴】第二篇 :解决使用maven jetty启动后无法加载修改过后的静态资源

  之前写过第一篇:[技术贴]解决使用maven jetty启动后无法加载修改过后的静态资源 一直用着挺舒服的,直到今天,出现了又不能修改静态js,jsp等资源的现象.很是苦闷. 经过调错处理之后,发现是jetty报错,可以如下修改解决,jetty defaultsDescriptor 不起作用 在web.xml中新的正确配置如下(使用版本:jetty -> install/jetty-distribution-7.2.0) <servlet> <servlet-name>d

Ubuntu启动后自动加载ext4分区

  为了数据安全起见,平时喜欢把系统安装在一个100GB左右的系统分区,其他所有数据保存在另一个数据分区,那即使系统出问题要重装,也只要格式化系统分区即可,数据分区不受影响! 示例如下:把ext4格式的sdb2分区加载到 /media/YourPartition. 首先: 1. 创建/media/YourPartition目录 2. 然后打开 /etc/fstab 文件,添加行: /dev/sdb2 /media/YourPartition ext4 defaults 0 1 OK,重启后即生效

jQuery Mobile页面跳转后未加载外部JS原因分析及解决_jquery

在使用jQuery Mobile进行Web开发中,当页面跳转时(pageA => pageB),在pageB中引用的JS并未成功运行.因为,JQM并为将整个页面加载到当前的dom中,仅将data-role="page"元素加入当前的dom中. 因此,在<head>中引入的外部JS文件,以及<page>标签外的JS均不能正常运行,刷新页面后方可加载成功. 鉴于JQM这个特性不太可能主动更改,可以用两种方法来解决:一是在index页面中,注册所有需要使用到的外

加载应用-weblogic服务启动,未加载项目

问题描述 weblogic服务启动,未加载项目 再一次不正常关机后,MyEclipse中启动weblogic控制台显示到Server started in RUNNING mode时,不再显示加载应用的信息.控制台打印信息如下: <> <> <> 后来我在网上搜索有的说是重新建一个域,使用新域可以解决,我试了一下,果然可以,这个是什么问题呢?

Office2003关闭启动文件夹加载项

当您启动 Word 时,Word 将自动加载模板和加载项位于启动文件夹中.在 Word 中的问题可能是冲突或问题造成的与外接程序.要确定问题是否由 startup 文件夹中的项目引起,请暂时关闭指向这些加载项的注册表设置. 在启动 Word 时再次以典型方式 (不使用支持模板),而无需外接程序在启动文件夹中启动 Word 操作步骤: 若要暂时关闭启动文件夹加载宏,请按照下列步骤操作: 退出所有 Office 程序. 双击桌面上的支持模板快捷方式. 在支持模板中,单击疑难解答工具. 在Micros

jQuery Mobile页面跳转后未加载外部JS

在使用jQuery Mobile进行Web开发中,当页面跳转时(pageA => pageB),在pageB中引用的JS并未成功运行.因为,JQM并为将整个页面加载到当前的dom中,仅将data-role="page"元素加入当前的dom中.因此,在<head>中引入的外部JS文件,以及<page>标签外的JS均不能正常运行,刷新页面后方可加载成功.   鉴于JQM这个特性不太可能主动更改,可以用两种方法来解决: 一是在index页面中,注册所有需要使用到

微信扫描二维码后 图片加载不出来是怎么回事 标题是出来了 就是图片不能出来

问题描述 微信扫描二维码后 图片加载不出来是怎么回事 标题是出来了 就是图片不能出来 这个功能主要想是扫描二维码后 可以预览图片

点击文本框后才加载验证码的JS代码

经常到各大网站去留言或者发帖的朋友应该知道现在很多网站的留言地方的验证码不是直接显示的.而是在点击验证码输入框之后才会显示出来验证码的.下面作者也总结了一篇关于如何利用js实现点击文本框然后再加载验证码的效果的. 首先我们来说说为什么要这么做吧,据作者看来,这个效果的目的应该不仅仅是为了美观的,更多的应该是进一步防止别有用心之人用机器人发送垃圾留言或者垃圾帖子.因为我们在网站留言的时候设置个验证码的目的就是为了防止机器人的,然而现在已有传言说有能够识别验证码图片的机器人了.那么这该怎么办?那就再

为什么U盘启动PE时加载镜像时间很久

  为什么U盘启动PE时加载镜像时间很久?电脑教程 PE镜像加载的时间取决于你的主板,有些主板上要七八分钟才能加载的镜像,在支持USB2.0启动的主板上也许只要几十秒