最近在使用solr時,配置會有一些問題,log里面打印出日志了,但是還是不知道發生這樣錯誤的原因。於是想學習一下相關的solr源碼,以下是如何搭建solr調試環境步驟。
solr調試環境搭建,首先下載源碼。
可以通過 http://archive.apache.org/dist/lucene/solr/ 下載各個版本的源碼。還可以在github下載最新的solr代碼,地址是:https://github.com/jeniss/lucene-solr。
源碼導入Intellij idea
在下載后的solr項目,可以發現是用ant管理的。所以需要確保已安裝ant。ant下載地址:http://ant.apache.org/bindownload.cgi。在環境變量中配置ant。ANT_HOME:D:\Program Files (x86)\java\apache-ant-1.9.7,Path:%ANT_HOME%\bin。配置完成后,執行ant -version,顯示ant版本,則代表安裝成功。如圖。
接下來,solr源碼編譯為idea的項目。
在根目錄下,運行ant命令,查看ant可以執行的操作。
當我們執行ant idea,即可將solr源碼編譯成intellij idea的項目。在編譯ant idea時候可能會失敗,這是可以運行 ant ivy-bootstrap。
編譯成功后,在intellij idea中通過open的方式導入。選擇“lucene-solr”父項目后,項目會整體導入。
->
此時,項目導入intellij idea。
配置JDPA遠程調試
從5.3開始,solr不再提供war包。solr團隊說:“Solr is intended to be a server not a Java web application”。因此,在\lucene-solr\solr目錄下,運行ant server創建solr server。solr的cores默認的根目錄為\lucene-solr\solr\server\solr。
然后,在idea配置遠程調試。在“Run Configurations”里添加Remote,在配置中,自定義Name,Host,和Port。Transport選擇socket選項。
接着,我們在cmd中進入lucene-solr\solr\bin文件夾中,運行solr start -p 8988 -f -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8988",配置的端口號(e.g. 8988)要與在idea中配置的端口號一致。
最后,在idea中運行debug模式。我們在網頁中http://localhost:8988,則可以開始進行調試。
在Intellij idea中查看solr日志文件
為了更方便的查看solr日志文件,可以進行如下配置在idea中查看日志。
在Debug Configurations中添加\lucene-solr\solr\server\logs\solr.log文件。
修改\lucene-solr\solr\server\resources\log4j.properties文件,自定義日志輸出的內容。在遠程調試時,idea中顯示的日志如下: