記錄一下idea遠程tomcat運行項目的配置過程
背景:每次系統修改代碼后則需手動打包手動部署到測試服務器上,為了簡化這個過程我這里選擇嘗試一次idea的遠程運行功能,結論來講這玩意配置麻煩,並不算很好用,只是部署的話,還是Jenkins之類的自動化工具更合適。
遠程機:安裝有tomcat
本地機:顧名思義,開發用的裝有idea的機器
系統均為windows7,tomcat為8.5
遠程機:
tomcat默認項目路徑是webapps,首先不建議繼續使用這個路徑,為server.xml下/Server/Engine/Host@appBase指定一個新路徑,然后將其設置為共享文件夾用於給本地機傳包,idea有好幾種方式可用於傳包,這里我選擇windows自帶的共享文件夾方式,ftp也可以這里我就不多說了。
接下來修改tomcat啟動參數,首先明確一點,windows下tomcat有2種常見啟動方式,1是startup.bat,2是tomcat8.exe以服務方式啟動。
用方法1啟動則需要添加setenv.bat文件設置CATALINA_OPTS,內容為set CATALINA_OPTS=...。
如果使用第二種方式啟動則需要使用tomcat8w.exe在Java下的Java Options后添加啟動參數,注意這種方式需要注意服務名稱,如果服務名稱為Tomcat8那么沒有問題,如果為自定義名稱則需要重命名tomcat8w.exe為${自定義名稱}w.exe,例如我把服務名改為tomcat666那么我就需要重命名tomcat8w.exe為tomcat666w.exe
啟動參數內容可以在idea幫助文檔中查到。

-Dcom.sun.management.jmxremote=
-Djava.rmi.server.hostname=<host>
-Dcom.sun.management.jmxremote.port=<port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
host為遠程機的ip,port為jmx port,自定義,注意不要被占用。
然后啟動tomcat。
以上,遠程機的准備就做完了。
本地機:
首先,因為我們使用的是共享文件夾方式來傳輸,本地機需要掛載共享文件夾為網絡驅動器,win7下右鍵計算機選擇映射網絡驅動器,這里我將其映射到X盤,成功后計算機下會多出一個X盤。
接下是idea配置
首先新建一個tomcat-remote運行項


修改localhost為遠程機的ip地址,JMX port設置為先前在tomcat配置好的端口,然后修改type為local or mounted folder,意思為本地或掛載文件夾,之后的host需要手動添加先前映射的X盤,path from root可以為空,如果共享的文件夾不是tomcat的appBase則需要填此項,注意mapped as為指定文件夾對於遠程機的本地路徑,比如遠程機共享了D:\artifacts文件夾,而path from root為空,則這一欄就應該填D:\artifacts,如果path from root為webapps,則這一欄就應該為D:\artifacts\webapps,之后運行時會把編譯好的項目放到這里。
之后再在Deployment中添加artifact,這里就不多贅述了。
接下來就應該可以編譯運行了,如果artifact選擇的war包則需要先用maven打好包再運行。注意遠程機的tomcat必須為啟動狀態。
以上就是使用遠程tomcat運行項目的配置過程,實際使用時時常會報錯,此時清一下共享文件夾再運行一次多半就解決了,注意這個就算運行stop后tomcat也不會真的stop,所以可以用來遠程部署。
以上只是遠程運行的配置,如果需要遠程debug還需做額外配置。在遠程機tomcat運行參數中添加如下參數即可
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
