2017-06-19 98 views
8

我用tomcat-maven插件使用tomcat7。我可以讓它熱切的我的jsp,但它只有在我直接在目標中修改它時才起作用。我如何讓tomcat在我的sources目錄中查找更改?如何使用tomcat7-maven-plugin熱部署jsp文件?

的pom.xml

<plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.2</version> 
      <configuration> 
       <serverXml>${project.build.directory}/config/tomcat-config/${usingDb}/server.xml</serverXml> 
       <tomcatUsers>${project.build.directory}/config/tomcat-config/tomcat-users.xml</tomcatUsers> 
       <configurationDir>${project.build.directory}/config/tomcat-config</configurationDir> 
       <additionalClassesDirs> 
        <classesDir>${project.basedir}/src/main/webapp</classesDir> 
       </additionalClassesDirs> 
       <contextReloadable>true</contextReloadable> 
       <port>${tomcat.http.local.port}</port> 
       <path>/${url.contextPath}</path> 
      </configuration> 
     </plugin> 
+0

通常你使用IDE來啓動tomcat完全集成,這樣會好很多。如果你的pom沒有特定的規則,這意味着插件在啓動應用程序之前複製文件,所以對你來說運氣不好。無論如何。使用IDE! – wargre

+0

當你改變它或當你清理和建立你的戰爭項目時,它不會熱切換? –

回答

3

這取決於你如何使用/啓動Maven插件。 與

mvn tomcat7:run 

開始就應該做的伎倆(相比於運行戰爭或任何其他目的)。詳情請見http://tomcat.apache.org/maven-plugin-2.2/tomcat7-maven-plugin/plugin-info.html

這實際上會在你的tomcat中重新加載上下文。我不確定實際的「熱替換」沒有重新加載上下文是可能的,沒有像jrebel或類似的第三方庫/插件。

1

您應該能夠運行war:exploded maven目標以將您的更改從源目錄複製到目標目錄。

0

在Eclipse中將您的工作區更改爲\ tomcat \ webapps因爲它只是爲了您的工作,所以應該可以正常工作。無論你在Eclipse中做出什麼樣的改變,都是在同一個目錄下,tomcat尋找應用程序來部署