我使用Solr在数据库上执行搜索。我在我的pom.xml中添加了以下依赖项,但它没有用。
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>5.3.1</version>
</dependency>
我遇到了运行时错误java.lang.NoClassDefFoundError: 组织/阿帕奇/ solr的/普通/ PARAMS / SolrParams
我通过将整个库放在WEB-INF / lib文件夹下来解决这个问题。然而,它让我困惑为什么maven依赖不起作用。 我使用的是tomcat 8.0。
答案 0 :(得分:0)
应用程序中引用的所有jar(库)应该在运行时在应用程序的库路径中可用。在您的POM中,您已经定义了所使用的所有库或包。 POM的默认存储库是~/.m2/respository
,它保留所有引用jar。
现在你需要在朗姆酒时间提供它们。对任何应用程序执行mvn clean install
时,默认情况下它只打包应用程序源代码而不是所有库。这些被称为Thin jar's
,因为它们只包含应用程序代码和轻量级。
要在运行时访问它们,您需要创建一个Fat jar
,它将捆绑POM文件中定义的所有jar,或者您需要将它们添加到应用程序lib
路径。
通过将它们放入WEB-INF/lib
,您将所有jar添加到应用程序lib路径中,这是tomcat的默认lib路径。