有些eclipse可能是版本低的原因,導致eclipse、maven、tomcat不能很好整合。下面是解決這個問題的個人經驗。
1:建立一個maven項目,這一步不詳細說了。
2:右擊,將maven項目轉為動態web項目。
3:maven項目產生時會有一個/src/main/webapp的檔案夾,這個其實對應eclipse動態web項目的WebContent目錄。 eclipse在上面轉換maven項目為動態web項目時會產生幾個檔案在項目下的.settings下,其中有兩個檔案需要修改.jsdtscope和org.eclipse.wst.common.component,找到裡面的WebContent,將其替換成/src/main/webapp即可,到這裡eclipse可以將將/src/main/webapp下的檔案複製到tomcat了,但還有一個問題,maven所管理的jar無法複製到tomcat,同樣在前面兩個檔案裡將maven編譯後項目所在的路徑配置進去就可了。org.eclipse.wst.common.component加上<wb-resource deploy-path="/" source-path="/target/autodeploy-0.0.1-SNAPSHOT"/>。.jsdtscope加上<classpathentry kind="src" path="target/autodeploy-0.0.1-SNAPSHOT"/>,最後將WebContent目錄刪除。
最後.jsdtscope的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="target/autodeploy-0.0.1-SNAPSHOT"/><!--這一行是新加的-->
<classpathentry kind="src" path="src/main/webapp"/><!--這一行原來的path是WebContent->
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
org.eclipse.wst.common.component的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="autodeploy">
<wb-resource deploy-path="/" source-path="/target/autodeploy-0.0.1-SNAPSHOT"/><!--這一行是新加的-->
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/><!--這一行原來source-path是WebContent->
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
<property name="context-root" value="autodeploy"/>
<property name="java-output-path" value="/autodeploy/src/main/webapp/WEB-INF/classes"/>
</wb-module>
</project-modules>