SolrJ与Maven

时间:2013-01-21 17:17:11

标签: maven solr solrj

我是Solr和maven的新手,我想制作一个小型应用程序,通过SolrJ索引我的所有数据库表。
为此,我抬头看着他们使用MAVEN的tutorial 我安装了librairies和jar(maven除外),但我遇到了这个例外:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequestInterceptor

我查看了教程,我看到为了解决这个问题,我们需要将它添加到我的maven配置中:

  

              org.slf4j               SLF4J-简单               1.5.6           

如果没有maven,有没有这样做呢? 谢谢

2 个答案:

答案 0 :(得分:2)

使用maven。即便如此,我花了相当多的时间来确保依赖关系正确。教程都有点缺乏。下面是我的pom.xml,其中包含我maven带来的相关依赖项。也许它会帮助你。

<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-core</artifactId>
    <version>4.3.0</version>
</dependency>
<dependency>
    <artifactId>solr-solrj</artifactId>
    <groupId>org.apache.solr</groupId>
    <version>4.3.0</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
</dependency>

答案 1 :(得分:0)

Maven是Solrj的建议构建技术,因为它可以自动管理第三方依赖项。如果没有依赖管理,破译这些关系是一种巨大的痛苦(Jar hell)。

我可以建议使用常春藤,其中command-line mode

首先下载常春藤罐

要检索以下Maven模块及其所有依赖项:

    <dependency>
           <artifactId>solr-solrj</artifactId>
           <groupId>org.apache.solr</groupId>
           <version>1.4.0</version>
           <type>jar</type>
           <scope>compile</scope>
    </dependency>

然后按如下方式运行:

 java -jar ivy.jar \
      -dependency org.apache.solr solr-solrj 1.4.0 \
      -retrieve "lib/[artifact]-[revision](-[classifier]).[ext]" \
      -confs default

检索到lib目录:

lib/commons-httpclient-3.1.jar
lib/wstx-asl-3.2.7.jar
lib/slf4j-api-1.5.5.jar
lib/commons-codec-1.3.jar
lib/stax-api-1.0.1.jar
lib/geronimo-stax-api_1.0_spec-1.0.1.jar
lib/commons-logging-1.0.4.jar
lib/solr-solrj-1.4.0.jar
lib/commons-io-1.4.jar
lib/commons-fileupload-1.2.1.jar

更新

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequestInterceptor

这是因为缺少httpcore.jar文件。我通过浏览Maven Central找到了这个:

关于使用“slf4j-simple”的建议是提供一个日志实现,以防你的应用程序没有。

最后......这表明了我试图说的话。如果没有依赖关系管理工具(ivygroovyMaven),您就可以自行解密第三方jar依赖关系。