我正在eclipse工作區中設置一個流浪框設置項目。我正在設置一個新的Maven項目,但我遇到了使用Windows路徑而不是流浪路徑的插件的問題。我的Windows工作區是在C:\ Dev中設置的,所以當我'流浪'時,我的整個工作區都可以在我的虛擬機中使用。換句話說,VM中的/ vagrant包含C:\ Dev的內容。Maven碼頭插件使用錯誤的資源文件URL
當我執行mvn jetty:run時,一切都開始良好,所有路徑都使用vagrant版本(/ 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)
這是一個bug與插件還是有配置設置,我可以用它來設置這個值?
編輯:多一點上下文......似乎問題與過濾的資源有關。
<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上。 Eclipse偶爾會構建該項目,並且當它這樣做時,$ {project.basedir}引用C:\ Dev \ mvn_project而不是/ vagrant/mvn_project。有沒有辦法可以覆蓋$ {project.basedir}而無需硬編碼?