3

storm-contribの SimpleMongoBolt を使用しようとしています。ソースをダウンロードし、storm-contrib-mongo ディレクトリに入り、mvn package と mvn install を実行しました。すべてが正常に機能し、IntelliJ はコーディング中に問題を解決できました。ただし、プロジェクトをビルドしようとすると、外部リポジトリでこのライブラリの pom を見つけようとします。見つからない場合は失敗します。これを修正するにはどうすればよいですか?

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>StormTest</groupId>
    <artifactId>StormTest</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <name>StormTest</name>

    <repositories>
        <repository>
            <id>clojars.org</id>
            <url>http://clojars.org/repo</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>storm</groupId>
            <artifactId>storm</artifactId>
            <version>0.7.2</version>
            <scope>Test</scope>
        </dependency>
        <dependency>
            <groupId>com.rapportive</groupId>
            <artifactId>storm-amqp-spout</artifactId>
            <version>0.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.rapportive</groupId>
            <artifactId>storm-json</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>storm</groupId>
            <artifactId>storm-contrib-mongo</artifactId>
            <version>0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>
4

2 に答える 2

1

Storm-Contrib の SimpleMongoBolt は、実際には古くなっています。モジュールを自分で更新し、まだマージされていないプル リクエストを送信しました。現在、Storm-Contrib forkから更新されたコードを取得できます。

于 2012-11-28T06:33:46.750 に答える
1

プロジェクト pom で適切な依存関係が定義されているかどうかを確認し、それらをストーム アーティファクト 1 と比較することができます。groupIdartifactId、およびversionが同じである必要があります。一致していない場合、Maven は外部リポジトリからダウンロードを試みますが、パブリック Maven リポジトリにインストールされていないため、おそらく失敗します。

アーティファクトをインストールすると、それはuser-directory /.m2/repostiory/ group/id/path /*artifact/id/path*/ versionに移動します。

storm-amqp-spout の場合は、 user-directory /.m2/repository/com/rapportive/storm-amqp-spout/0.1.1フォルダーに配置する必要があります。

そこにはいくつかのファイルがあるはずです:

  1. jar自体 (jar ファイルとしてパッケージ化されている場合)。
  2. pom.xmlファイル (プロジェクト用に作成し、ビルドおよびインストールに使用したものと同じ)。
  3. オプションで、上記の両方のsha1ファイル。

それらがない場合は、アーティファクトをリポジトリにインストールする際に何らかの間違いを犯した可能性があります。再インストールを試みるか、アーティファクト ソース ディレクトリからコピーするだけで pom を手動で作成できます。

正しいpom.xmlがある場合、IntelliJを使用したことがないため、実際にはわかりません(アイデア?;))。

于 2012-08-08T09:18:57.920 に答える