solr源码导入idea
准备
- solr 6.6.0
- jdk 1.8
- idea 2017.1
- apache-ant-1.10.1
- 下载ant,安装好,配置好ant环境变量,具体这里就不详述了;
Ctrl+R
打开控制台,执行
C:\Users\风铃>F:
F:\>cd F:\WorkPlace\IdeaProjects\solr-6.6.0
转到solr根目录
执行
ant ivy-bootstrap
执行完毕后
Buildfile: F:\WorkPlace\NetBean\solr-6.6.0\build.xml
ivy-bootstrap1:
[echo] installing ivy 2.3.0 to C:\Users\风铃\.ant\lib
[get] Getting: http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar
[get] To: C:\Users\风铃\.ant\lib\ivy-2.3.0.jar
ivy-bootstrap2:
ivy-checksum:
ivy-bootstrap:
BUILD SUCCESSFUL
Total time: 8 seconds
这样就算成功了
然后执行
ant idea
等到提示
Buildfile: F:\WorkPlace\NetBean\solr-6.6.0\build.xml
ivy-bootstrap1:
[echo] installing ivy 2.3.0 to C:\Users\风铃\.ant\lib
[get] Getting: http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar
[get] To: C:\Users\风铃\.ant\lib\ivy-2.3.0.jar
ivy-bootstrap2:
ivy-checksum:
ivy-bootstrap:
BUILD SUCCESSFUL
Total time: 8 seconds
就算成功了。
这里说下,有时候会一值卡在某个target或者不往下执行,清理掉用户目录下的
.ivy2
目录,重新执行试下,一般都能解决
- 打开idea,选择
open
,找到项目所在位置,打开项目即可
配置tomcat
安装好tomcate,这里路径为F:\Tomcat 9.0,然后在idea配置tomcat。
从菜单Run->Edit Configurations
打开配置窗口,Defaults
展开后找到Tomcat Server
,点击Local
填好tomcat的配置,
再点击左上角的+
,添加Tomcat Server
,起名为webapp
在solr项目,新增一个
webapp
的web Module,把solr\webapp\web
下的所有内容,复制到webapp
下覆盖替换
依赖关系
按F4
打开项目配置页,选择
选择Modules
,再选择项目webapp
,选择Dependencies
把所有非test类型的Modules全部引用进来
接下来,配置Artifacts
Artifacts就是指最终发布的打包。这里要比较注意
luncene项目的anlysis
相关项目,因为它带有resource文件,比如luncene\analysis\phonetic
就带有resource\META-INF.services\org.apache.lucene.analysis.util.TokenFilterFactory
这个资源,从我搜索结果来看,有这个名称的资源的不止这一个,会导致classes
目录下的这个资源文件会被覆盖掉而缺失,出现类似这样的错误Error CREATEing SolrCore 'position': Unable to create core [position] Caused by: solr.JapaneseTokenizerFactory
解决办法是,所有anlysis
项目集成到Artifacts的时候,都采用lib的形式而非class的形式。
如果+
-
号下没有东西,就点击+
号,选择Web Application Exploaded
选择From Modules
选择webapp项目;
然后再output layout
下方,Available Elements
展开Luncene\Analysis
,把里面的项目一个一个展开,
右键analysis common compile output
选择Pack into /WEB-INF/lib/analysis-common.jar
菜单,analysis其他项目依次类似(具体原因上面说了);
其他项目选择图上’Extract Into /WEB-INF/classes’就可以了
8. 点击Run->Run webapp
菜单就好