0

私はこの問題を数日間追跡してきました。最近、ルナから Eclipse ネオンにアップグレードしました。同じ開発スペース内の他のプロジェクトで定義された jar に依存する複数のプロジェクトがあります。プロジェクトの依存関係を pom.xml だけで定義すると、すべてうまくいきました。ただし、2 つの依存プロジェクトを持つ 1 つのプロジェクトがあり、1 つのプロジェクトは jar として解決され、もう 1 つのプロジェクトは他のプロジェクトで生成されたクラスのパスへの参照として解決されます。

他のプロジェクトを参照する pom.xml のスニペットを次に示します。

    <dependency>
        <groupId>org.ihc.hdd</groupId>
        <artifactId>LeopardSearchBase</artifactId>
        <version>1.3</version>
    </dependency>
    <dependency>
        <groupId>org.ihc.hdd.solr</groupId>
        <artifactId>IndexerBase</artifactId>
        <version>1.1.0</version>
    </dependency>

プロジェクトをビルドするとき、プロジェクトの Maven 依存関係の参照は次のとおりです。

「IndexerBase」プロジェクトがクラス パスによって参照され、「LeopardSearchBase」が jar によって参照されていることに注意してください。
これらのプロジェクトは jar として定義されており、私が知る限り、まったく同じ方法で構成されています。

奇妙なことに、Eclipse ルナを使用して「maven->Update Project...」を実行すると、正しく構成されますが、Eclipse ネオンを同じプロジェクトに向けると、正しく構成されません。

Eclipse luna からのプロジェクト依存関係参照

Eclipse ルナの org.eclipse.wst.common.component は次のようになります。

<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
  <wb-module deploy-name="EddConsole-1.0">
        <dependent-module archiveName="IndexerBase-1.1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/IndexerBase/IndexerBase">
            <dependency-type>uses</dependency-type>
        </dependent-module>
        <dependent-module archiveName="LeopardSearchBase-1.3.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/LeopardSearchBase/LeopardSearchBase">
            <dependency-type>uses</dependency-type>
        </dependent-module>
    <property name="context-root" value="EddConsole"/>
    <wb-resource deploy-path="/" source-path="src/main/webapp"/>
    <property name="java-output-path" value="/target/classes"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
        <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/webapp"/>
  </wb-module>
</project-modules>

また、Eclipse ネオンの org.eclipse.wst.common.component は次のようになります。

<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
  <wb-module deploy-name="EddConsole-1.0">
        <dependent-module archiveName="LeopardSearchBase-1.3.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/LeopardSearchBase/LeopardSearchBase">
            <dependency-type>uses</dependency-type>
        </dependent-module>
    <property name="context-root" value="EddConsole"/>
    <wb-resource deploy-path="/" source-path="src/main/webapp"/>
    <property name="java-output-path" value="/target/classes"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
        <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/webapp"/>
  </wb-module>
</project-modules>

ここで設定オプションを見逃してしまったことを願っています。プロジェクトをそのまま実行すると、Web アプリとして適切にデプロイされません。

この問題を解決する方法についてのアイデアはありますか?

ありがとうございました。

4

0 に答える 0