這是一個古老的線程,但爲了完整性我雖然我可能會在這裏添加一點。
插件不提供任何奇怪的原因調試選項配置。 因此,您唯一的選擇是手動將調試配置指定給運行該進程的JVM。 在你的環境中,有三種方式實現這一目標:
- 使用衆所周知的Maven的環境變量(由childno.de描述)
- 直接指定的選項到Maven(無。環境變量需要):
MVN -Xdebug -Xnoagent -Djava.compiler = NONE -Xrunjdwp:交通= dt_socket,地址= 8000,服務器= Y,暫停= Y tomcat7:運行戰爭
- 使用eclipse運行配置這與2)基本相同,但是您可以在eclipse中定義它(如果您不想離開IDE,那將會很好)。 爲了達到這個目的,你需要指定一個Maven Build Run配置。 將目標設定爲
tomcat7:run
(或類似),然後導航至JRE選項卡。 VM參數區域是您指定調試配置的區域:-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
如果您選擇3),tomcat7的精確運行目標與調試啓用無關。根據你的使用案例(動態網頁項目,戰爭等)選擇。插件配置也一樣。但是,請務必註明您使用的是Tomcat Maven的項目中的POM的
pluginManagement
部分插件:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</pluginManagement>
我必須首先配置上述使用JVM參數運行的maven,讓它運行,然後有第二個調試配置來遠程調試?我假設如果我改變了HTTP端口,那麼對於JVM參數是一樣的呢? – JBA
是的。您需要相應地設置您的遠程調試客戶端。從你的問題中,我推斷你的日食,但原則上任何其他JPDA功能的客戶也符合條件。這些是eclipse遠程調試配置的默認設置,因此它應該可以直接使用。如果端口8000不可用,請確保在服務器JVM調試設置(-Xrunjwdp選項的地址段)和客戶端(eclipse調試配置)中都更改爲另一個端口。爲避免混淆,此端口用於遠程調試協議,不涉及與Tomcat進行的HTTP/S通信。 – shturec