maven
Maven Jetty Plugin 으로 개발하면서 css, js, html 같은 정적 파일이 저장안될때
스토브
2011. 8. 24. 01:23
이클립스에서 maven을 쓰면서 jetty plugin 으로 서버를 띄워놓고 개발을 할때
css, js, html 같은 정적 컨텐츠 파일을 편집해서 저장할려고 하면
"요청한 작업은, 사용자가 매핑한 구역이 열려 있는 상태인 파일에서 수행할 수 없습니다" 요런 야리꾸리한 에러 메시지가 뜨면서 저장이 안된다.
어디서 찾아봤는데 이런 현상은 윈도우에서만 발생하고 서버가 올라간 상태에서 해당파일을 jetty 가 참조하고 있어서 동시에 파일을 변경할수 없어서 나는 에러라고 한다.
요것을 해결하기 위한 방법은
1. pom.xml 에서 jetty plugin 이 설정된 부분에 아래처럼 <defaultsDescriptor>위치</defaultsDescriptor> 를 추가해준다.
Maven Jetty Configuration 참고 URL : http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin
2. pom.xml에서 설정한 위치로 webdefault.xml 파일을 복사하고 webdefault.xml 파일에서 init-param 들 중에 useFileMappedBuffer 이라는 항목이 true 로 설정되 있을건데 요걸 false 로 바꿔주면 된다.
※ 옛날 버전에서 webdefault.xml 위치 지정 : configuration 태그 아래에 바로 <webDefaultXml>위치</webDefaultXml> 요렇게 설정하면 된다.
※ 디폴트 webdefault.xml 위치
[메이븐로컬레파지토리]\org\eclipse\jetty\jetty-webapp\플러그인버전\jetty-webapp-XXX.jar 파일안에 org/eclipse/jetty/webapp/ 폴더 안에 있다~~
[메이븐로컬레파지토리] 경로는 별다른 설정을 안했다면 사용자 홈 디렉토리\.m2\repository 이다.
나같은 경우는 C:\Users\Administrator\.m2\repository 요기임.
css, js, html 같은 정적 컨텐츠 파일을 편집해서 저장할려고 하면
"요청한 작업은, 사용자가 매핑한 구역이 열려 있는 상태인 파일에서 수행할 수 없습니다" 요런 야리꾸리한 에러 메시지가 뜨면서 저장이 안된다.
어디서 찾아봤는데 이런 현상은 윈도우에서만 발생하고 서버가 올라간 상태에서 해당파일을 jetty 가 참조하고 있어서 동시에 파일을 변경할수 없어서 나는 에러라고 한다.
요것을 해결하기 위한 방법은
1. pom.xml 에서 jetty plugin 이 설정된 부분에 아래처럼 <defaultsDescriptor>위치</defaultsDescriptor> 를 추가해준다.
<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.0.0.RC0</version> <configuration> <scanIntervalSeconds>1</scanIntervalSeconds> <webAppConfig> <defaultsDescriptor>src/main/resources/jetty/webdefault.xml</defaultsDescriptor> </webAppConfig> </configuration> </plugin>jetty 8.0.0. 어쩌고 하는 버전부터인지 몰라도 아무튼 최신버전은 webdefault.xml 위치를 설정하는 방법이 바껴서 위와 같은 태그로 설정해야 한다.
Maven Jetty Configuration 참고 URL : http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin
2. pom.xml에서 설정한 위치로 webdefault.xml 파일을 복사하고 webdefault.xml 파일에서 init-param 들 중에 useFileMappedBuffer 이라는 항목이 true 로 설정되 있을건데 요걸 false 로 바꿔주면 된다.
<init-param> <param-name>useFileMappedBuffer</param-name> <param-value>false</param-value> </init-param>요렇게만 해주면 이제부터 파일이 훅훅 저장이 잘 된다.
※ 옛날 버전에서 webdefault.xml 위치 지정 : configuration 태그 아래에 바로 <webDefaultXml>위치</webDefaultXml> 요렇게 설정하면 된다.
<configuration> <webDefaultXml>src/main/resources/jetty/webdefault.xml</webDefaultXml> </configuration>옛날버전 Jetty Configuration 참고 URL : http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin
※ 디폴트 webdefault.xml 위치
[메이븐로컬레파지토리]\org\eclipse\jetty\jetty-webapp\플러그인버전\jetty-webapp-XXX.jar 파일안에 org/eclipse/jetty/webapp/ 폴더 안에 있다~~
[메이븐로컬레파지토리] 경로는 별다른 설정을 안했다면 사용자 홈 디렉토리\.m2\repository 이다.
나같은 경우는 C:\Users\Administrator\.m2\repository 요기임.