eclipse 与 tomcat 的那些路径
我们用mvn创建了一个web工程,同时希望在eclipse里调试开发。mvn有mvn的路径要求,eclispe有eclipse的默认路径,怎么整合二者?
首先介绍一下eclipse的默认路径。
重点在Server Locations里面。
下面我们把[workspace]/.metadata\.plugins\org.eclipse.wst.server.core\ 记为 [BASE]
假设我们创建的web project 名为 bookstore,在eclipse中选中project,执行“run on server”后真正执行的代码位于:[BASE]/tmp0/wtpwebapp/bookstore
下面我们说明这个路径是怎么确定的
tmp0 是由 [BASE]/tmp-data.xml确定的。我们每建立一个server,[Base] 下就会增加一个tmp 目录,并在tmp-data.xml中记录server和tmp目录的对应关系。
webpwebapp是在[BASE]\servers.xml 中确定的
<servers>
<server deployDir="..." ...>
...
<server>
<server deployDir="..." ...>
...
<server>
<servers>
在servers.xml 里定义了每个server的deployDir, 默认值为 “wtpwebapps"。
最后,bookstore怎么确定的呢?在 [workspace]/Servers/[Tomcat v7.0 Server at localhost-config]/server.xml 里
<Server>
<Service>
<Engine>
<Host>
<Context docBase="bookstore" .../>
<Host>
</Engine>
</Service>
</Server>
如果我们用mvn建立了工程,假设生成路径为 [proj]/bookstore/target/bookstore-SNAPSHOT
想在eclipse里调试.../target/bookstore-SNAPSHOT,需要如下修改:
1. [base]/Servers.xml : servers/server.deployDir ="[proj]/bookstore/target"
2. server.xml: Server/Service/Engine/Host/Context.docBase="bookstore-SNAPSHOT"
[base]/tmp0/conf 下的xml文件是在eclipse中启动tomcat时根据 project中的Servers/TomcatV7.0 Server at localhost/*.xml生成的