0

我一直在追逐这个问题好几天了。我最近从 luna 升级到 Eclipse neon。我有多个项目依赖于同一开发空间中其他项目中定义的 jar。我仅在 pom.xml 中定义项目依赖项,一切都很好。但是,我有一个项目有 2 个依赖项目,一个项目将自身解析为 jar,另一个将自身解析为对另一个项目中生成的类的路径的引用。

这是 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”项目,而 jar 引用了“LeopardSearchBase”。
这些项目被定义为罐子,据我所知,它们的配置方式完全相同。

奇怪的是,使用 Eclipse luna,运行 'maven->Update Project...' 它会正确配置自己,但是将 Eclipse neon 指向同一个项目,它会错误地配置自己。

来自 Eclipse luna 的项目依赖引用

来自 Eclipse luna 的 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 neon 的 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