2012-09-14 59 views
12

相關 eclipse debug remote web application =>How do I debug a remote application in my eclipse如何設置MVN Tomcat插件(JPDA)agentlib財產

如何設置這個在MVN Tomcat插件/歸檔? http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat7-maven-plugin/

,這可能有助於被設置systemProperty但是,這並不爲我工作的唯一的事;/

目標:讓Tomcat通過行家在控制檯上運行,但啓用遠程調試不同的IDE

(是人,我們可以在Eclipse WTP運行Tomcat這不是問題;!)

回答

5

這是一個古老的線程,但爲了完整性我雖然我可能會在這裏添加一點。

插件不提供任何奇怪的原因調試選項配置。 因此,您唯一的選擇是手動將調試配置指定給運行該進程的JVM。 在你的環境中,有三種方式實現這一目標:

  1. 使用衆所周知的Maven的環境變量(由childno.de描述)
  2. 直接指定的選項到Maven(無。環境變量需要):

    MVN -Xdebug -Xnoagent -Djava.compiler = NONE -Xrunjdwp:交通= dt_socket,地址= 8000,服務器= Y,暫停= Y tomcat7:運行戰爭

  3. 使用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> 
+0

我必須首先配置上述使用JVM參數運行的maven,讓它運行,然後有第二個調試配置來遠程調試?我假設如果我改變了HTTP端口,那麼對於JVM參數是一樣的呢? – JBA

+1

是的。您需要相應地設置您的遠程調試客戶端。從你的問題中,我推斷你的日食,但原則上任何其他JPDA功能的客戶也符合條件。這些是eclipse遠程調試配置的默認設置,因此它應該可以直接使用。如果端口8000不可用,請確保在服務器JVM調試設置(-Xrunjwdp選項的地址段)和客戶端(eclipse調試配置)中都更改爲另一個端口。爲避免混淆,此端口用於遠程調試協議,不涉及與Tomcat進行的HTTP/S通信。 – shturec

-1

或者......你可以簡單地將下面的標記添加到您的插件配置

<jpda>true</jpda> 

然後當您執行:mvn tomcat7:運行時,它將在端口8000上啓動jpda。

有趣的是,即使我已經測試了這個,它的工作原理,我找不到在開源代碼庫中的任何代碼,以解釋它爲什麼工作,也沒有找到任何方式從默認端口8000更改。

當涉及到這個插件的文檔時,Apache似乎已經放棄了。

+0

這對我不起作用。我在插件的2.2版本。我也從Apache下載了源代碼,併爲「jpda」運行了一個不區分大小寫的遞歸grep,沒有任何返回。 – bmauter

相關問題