Maven 是Solrj的建议构建技术,因为它可以自动管理 3rd 方依赖项。如果没有依赖管理,破译这些关系是一件非常痛苦的事情(Jar hell)。
我可以建议使用 ivy,它具有命令行模式。
首先下载 ivy jar
要检索以下 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”的建议是提供一种日志实现,以防您的应用程序没有日志实现。
最后......这证明了我想说的。在没有依赖管理工具(ivy、groovy、Maven)的情况下,您只能靠自己来破译第 3 方 jar 依赖项。