0

私のチームと私が開発した I クラス Library(B) を使用するプロジェクト (A) があります。

クラス ライブラリ (B) は searchbox-io.Jest プロジェクトをインポートして ElasticSearch エンジンにアクセスし、いくつかの処理を行います。プロジェクト (A) は、Restful サービスをユーザー インターフェイスに実装します。

これは、クラス ライブラリである B の POM です。

<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>br.org.b</groupId>
    <artifactId>b-project</artifactId>
    <version>0.1.11</version>
    <packaging>jar</packaging> 
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>              
            </plugin>
        </plugins>
        <extensions>
            <extension>
                <groupId>org.kuali.maven.wagons</groupId>
                <artifactId>maven-s3-wagon</artifactId>
                <version>1.2.1</version>
            </extension>
        </extensions>
    </build>
    <dependencies>      
        <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest</artifactId>
            <version>2.0.0</version>
        </dependency>       
    </dependencies> 
</project>

これはプロジェクト A の POM です。

<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>MachineAPI</groupId>
    <artifactId>MachineAPI</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>br.org.b</groupId>
            <artifactId>b-project</artifactId>
            <version>0.1.11</version>           
        </dependency>
    </dependencies>
</project>

問題:

しかし、プロジェクト A を実行しようとすると、searchbox-io.Jest への参照が見つかりません。

私の問題は、ElasticSearch のメソッドを使用できるように、プロジェクト A にクラス ライブラリが使用するのと同じ参照をインポートさせる必要があることです。どうすればそれを解決できますか?

4

1 に答える 1

0

両方のプロジェクトが同じパッケージに依存している場合は、両方のプロジェクトの依存関係に明示的にリストする必要があります。推移的な依存関係を当てにしないでください。

両方のプロジェクトがいくつかの依存関係を共有している場合、各 POM にすべてをリストする代わりに、すべての共通の依存関係を持つ「親」POM を作成し、それを両方のプロジェクトの親 POM にすることができます。

于 2016-03-17T18:37:32.500 に答える