一、opengrok搭建
opengrok是一個用於代碼搜索和跟蹤的工具,它可以讓開發者更加方便地查找代碼。在使用opengrok之前,需要先進行搭建。
1、安裝JDK及Tomcat。
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.33/bin/apache-tomcat-9.0.33.tar.gz tar -xzvf apache-tomcat-9.0.33.tar.gz mv apache-tomcat-9.0.33 /usr/local/tomcat9
2、下載opengrok。
wget https://github.com/oracle/opengrok/releases/download/1.3.6/opengrok-1.3.6.tar.gz tar -xzvf opengrok-1.3.6.tar.gz
3、配置環境變數。
export PATH=/root/opengrok-1.3.6/bin:$PATH export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el8_1.x86_64
二、opengrok使用
opengrok提供了web界面和命令行界面兩種搜索方式,可以方便地進行代碼搜索。以下是opengrok常用命令:
1、生成索引。
OpenGrok index path-to-source-files
其中,path-to-source-files為需要進行索引的代碼源文件目錄。
2、啟動服務。
/OpenGrok start
三、opengrok許可權
很多時候,我們需要對opengrok進行許可權的設置,以保證代碼的安全性。opengrok提供了基於用戶認證和授權的許可權管理機制,可以對不同用戶進行賦予不同許可權。
1、創建用戶。
htpasswd -c /usr/local/tomcat9/conf/opengrok-users admin
2、修改opengrok配置文件。
JAVA_OPTS="${JAVA_OPTS} -Djava.util.logging.config.file=/opengrok-1.3.6/doc/logging.properties -Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=com.wadpam.grok.config.PropCtx -Dcom.wadpam.grok.config.trust_store=/usr/local/tomcat9/conf/truststore.jks -Duser.password.file=/usr/local/tomcat9/conf/opengrok-users -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true -Dorg.apache.tomcat.util.http.parser.HttpParser.requestTargetAllow=@[]"
四、opengrok中文搜索
當代碼中存在中文時,opengrok默認無法進行中文搜索。為了解決這個問題,我們可以對opengrok進行相應的配置。
1、安裝IKAnalyzer。
wget https://github.com/wks/ik-analyzer/archive/master.zip unzip master.zip cd ik-analyzer-master/ mvn clean package assembly:assembly -Dmaven.test.skip=true cp target/ik-analyzer-1.0.0.jar /usr/local/lib/
2、修改opengrok配置文件。
GRASSROOTS_BIN=${OPENGROK_PREFIX}/bin/indexer GRASSROOTS_LIB=${OPENGROK_PREFIX}/lib/ GRASSROOTS_GLOBAL_LIB=${OPENGROK_PREFIX}/lib/ GRASSROOTS_JAR=${OPENGROK_PREFIX}/lib/opengrok.jar GRASSROOTS_JAVA=${JAVA_HOME}/bin/java GRASSROOTS_JAVAC=${JAVA_HOME}/bin/javac GRASSROOTS_ENCODING=UTF-8 GRASSROOTS_EXEC_PREFIX=/opengrok-1.3.6 GRASSROOTS_DISTRIBUTION_NAME=output GRASSROOTS_EDICTS_FILE=${OPENGROK_PREFIX}/config/edicts.xml analysis.analyzerprovider=org.apache.lucene.analysis.commongrams.CommonGramsAnalyzerProvider analysis.collapseWhiteSpace=true analysis.analyzerprovider.mycn=org.apache.lucene.analysis.cn.smart.HsSearchAnalyzerProvider analysis.analyzer.mycn=cn.ikan.analysis.IkanAnalyzer analysis.analyzer.latin=mycp analysis.analyzer.thai=myth writer.flushrate=1024
五、opengrok配置多個項目
我們可以使用opengrok同時進行多個項目的搜索,只需要進行相應配置即可。
1、創建指向代碼目錄的軟鏈接。
ln -s /path-to-project1 /path-to-opengrok/source/project1 ln -s /path-to-project2 /path-to-opengrok/source/project2
2、修改opengrok配置文件。
OPENGROK_INSTANCE_BASE=/opengrok-1.3.6 OPENGROK_WAR_TARGET=/usr/local/tomcat9/webapps JAVA_OPTS="${JAVA_OPTS} -Dorg.opensolaris.opengrok.history.CachingRepository=false -Dcom.sun.jersey.spi.container.ContainerRequestFilters=org.opensolaris.opengrok.web.filter.AllowGoogleCodeSearchFilter" export OPENGROK_TOMCAT_BASE=/usr/local/tomcat9 export OPENGROK_INSTANCE_BASE=/opengrok-1.3.6 export OPENGROK_DATA_ROOT=/opengrok-1.3.6/data export OPENGROK_LIBS=$OPENGROK_INSTANCE_BASE/lib export OPENGROK_DISTRIBUTION_BASE=$OPENGROK_INSTANCE_BASE/lib export PATH=$JAVA_HOME/bin:$PATH:/usr/local/gtags-6.5.6/bin export SRC_ROOT=/path-to-opengrok export JSP_COMPILER_LIST="" export JSP_COMPILER="" java -jar $OPENGROK_HOME/lib/opengrok.jar -s /path-to-opengrok/source -ownertag=MyOrganization -ctags /usr/local/ctags/bin/ctags -c /usr/local/gtags-6.5.6/bin/gtags -v -W /usr/local/tomcat9/webapps/config/configuration.xml -P -S -G -H -D /opengrok-1.3.6 -U http://localhost:8080/source -T -P -m 10 -U http://localhost:8080/source -k /usr/bin/skas
六、opengrok通過網頁下載本地
opengrok支持從網頁直接下載代碼到本地,方便開發者進行本地修改。
1、啟動opengrok服務。
/OpenGrok start
2、打開網頁,進入搜索頁面,在搜索結果列表找到需要下載的文件。
3、點擊文件名旁的下載按鈕即可把該文件下載到本地。
七、opengrok js
opengrok提供了一套可以自定義界面的js文件,可以讓開發者更加方便地進行頁面定製化。
1、在opengrok配置文件中,添加js文件目錄。
COMMON_DEFAULT=//'.$SERVER'].'/js/common_default.js COMMON=//'.$SERVER'].'/js/common.js
2、在對應的js文件中進行相應的修改和定製。
八、opengrok docker
如果覺得手動配置opengrok有些麻煩,我們可以選擇使用docker進行快速部署。
1、拉取opengrok鏡像。
docker pull oracle/opengrok:1.3.6
2、啟動opengrok容器。
docker run --rm -d --name opengrok -p 8080:8080 oracle/opengrok:1.3.6
3、進入容器,進行如下操作。
docker exec -it opengrok bash sudo -u dev ./OpenGrok index /src
4、打開網頁,進行訪問。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/236688.html