1 在pom.xml add :css
<build> <finalName>XXX(工程名字)</finalName> <plugins> <!-- http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html --> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.16.v20140903</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <webAppConfig> <contextPath>/lhc</contextPath> </webAppConfig> <webAppSourceDirectory>webapp</webAppSourceDirectory> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>8080</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> <stopPort>9966</stopPort> <stopKey>foo</stopKey> <stopWait>30</stopWait> </configuration> </plugin> </plugins> </build>
具體參數說明看 http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.htmlhtml
2 config the ide(eclipse)
選中項目,右鍵選擇 Run As --> Maven build jetty:runweb
到此配置完成。 運行或debug:右鍵 Run As緩存
3 禁止 Jetty 使用映射緩存:app
當你想試圖去修改正在被訪問的資源文件,像 CSS、JS、FTL等,這時候你修改完成想保存的時候,是保存不了的。 你必須停掉 Jetty 容器(若是是在CMD下運行的 Jetty 容器,按 Ctrl + C 停掉 Jetty),才能保存。保存完成後必須 從新啓動 Jetty 容器才能看見效果。這樣作不管是對修改 .css、.js、.ftl 等都很是麻煩和不爽。eclipse
究其緣由,這是 Jetty 使用了內存映射文件來緩存靜態文件。在Windows下面,使用內存映射文件會致使文件被鎖定。 解決方案是不使用內存映射文件來作緩存。步驟以下:webapp
根據所使用 Jetty 版本在本地的 maven 倉庫中找到 Jetty 版本對應的jar包。maven
如: <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.10</version> </plugin> </plugins>ide
則需找到( 個人本地的 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 運行時修改並保存資源文件。