내 eclipse 작업 영역에서의 방해 물 상자 설정 내에서 프로젝트를 실행 중입니다. 새로운 Maven 프로젝트를 설정하고 있지만, 이진진 경로 대신 Windows 경로를 사용하는 플러그인에 문제가 있습니다. 내 Windows 작업 공간은 C : \ Dev에 설치되므로, '위로 향하다'때 내 전체 작업 공간을 내 VM에서 사용할 수 있습니다. 즉, VM의/vagrant는 C : \ Dev의 내용을 포함합니다.잘못된 리소스 파일 URL을 사용하는 Maven 부두 플러그인
mvn jetty : run을 실행하면 모든 것이 잘 시작되고 모든 경로는 방랑자 버전 (/ vagrant/mvn_project/target ...)을 사용합니다.
2014-02-26 01:18:53.756:WARN:oejw.WebAppContext:Scanner-0: Failed startup of context [email protected]{/,[file:/vagrant/mvn_project/web, file:/vagrant/mvn_project/target/webapps/ROOT/],STARTING}{/ROOT/]}
javax.servlet.UnavailableException: Malformed URL 'file://C:\\Dev\\mvn_project/target/webapps/ROOT/WEB-INF/dtd/web-app_2_3.dtd' : For input string: "\\Dev\\mvn_project"
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:402)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:561)
at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:351)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:840)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:300)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1347)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:745)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:492)
at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:282)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
at org.eclipse.jetty.maven.plugin.JettyRunMojo.restartWebApp(JettyRunMojo.java:532)
at org.eclipse.jetty.maven.plugin.JettyRunMojo$1.filesChanged(JettyRunMojo.java:485)
at org.eclipse.jetty.util.Scanner.reportBulkChanges(Scanner.java:681)
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:539)
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:391)
at org.eclipse.jetty.util.Scanner$1.run(Scanner.java:329)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
이 플러그인에 버그가 아니면이 값을 설정하는 데 사용할 수있는 구성 설정이 있습니다 : 플러그인이 변경 프로젝트를 스캔하기 시작하면 그러나, 다음과 같은 오류가 발생합니다?
편집 : 조금 더 많은 컨텍스트 ... 문제는 필터링 된 리소스와 관련이있는 것으로 보입니다.
<resources>
<resource>
<directory>${project.basedir}/src/main/filtered-resources</directory>
<filtering>true</filtering>
<targetPath>${project.basedir}/target/webapps/ROOT</targetPath>
</resource>
</resources>
변경 $ {project.basedir는}에/방랑/mvn_project는 문제를 해결하기 위해 보이지만 명확하게 그냥 해결 방법이 아닌 솔루션 (예를 들어 CI에서 작동하지 않습니다)입니다.
업데이트 : 비평은 Eclipse에서 발생합니다. 이클립스는 때때로 프로젝트를 빌드하고 있으며, 그렇게하면 $ {project.basedir}은/vagrant/mvn_project 대신 C : \ Dev \ mvn_project를 참조합니다. 하드 코딩없이 $ {project.basedir}를 재정의 할 수있는 방법이 있습니까?