2

私はSolrとMavenの初心者であり、SolrJを介してすべてのデータベーステーブルにインデックスを付ける小さなアプリケーションを作成したいと考えています。そのために、私は彼らがMAVENを使用しているこのチュートリアル
を見上げました。 librairiesとjar(mavenを除く)をインストールしましたが、この例外がありました:

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

チュートリアルを調べたところ、この問題を解決するには、これをMaven構成に追加する必要があることがわかりました。

org.slf4jslf4j-シンプル1.5.6

とにかくMavenなしでそれを行うことはありますか?ありがとうございました

4

2 に答える 2

2

メイヴンを使用。それでも、依存関係を正しくするのにかなりの時間がかかりました。チュートリアルはすべて少し欠けていました。以下は、maven に持ち込んだ関連依存関係を含む pom.xml です。おそらく役立つでしょう。

<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>
于 2013-06-07T21:44:10.017 に答える
0

Maven は、サード パーティの依存関係の管理を自動化するため、 Solrjの推奨ビルド テクノロジです。依存関係の管理がなければ、これらの関係を解読するのは至難の業です ( 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」を使用する際の推奨事項は、アプリケーションにロギングの実装がない場合に備えて、ロギングの実装を提供することです。

最後に... これは私が言おうとしたことを示しています。依存関係管理ツール ( ivygroovyMaven ) がない場合、サードパーティの jar 依存関係を自分で解読する必要があります。

于 2013-01-22T16:46:34.950 に答える