查找不适用于不同版本的Eclipse Maven项目的引用

时间:2017-02-01 13:42:52

标签: java eclipse maven jar m2eclipse

我们有许多不同的Java Maven项目,每个项目都有不同的版本,每个项目都使用一个或多个其他Maven项目。它们全部作为Maven java项目导入到Eclipse中,启用了(Maven)工作空间解析,并且“一切”都是花花公子,除了查​​找引用功能,当更新Maven项目版本时它不起作用。 场景如下:

样本设置: 初始项目一个pom.xml

<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>com.deepak.test</groupId>
  <artifactId>a-project</artifactId>
  <version>1.0.0-SNAPSHOT</version>

</project>

项目A中的类

public ClassA {
  public static void someMethodA() {
  }
}

Project B pom.xml使用Project A作为依赖项:     http://maven.apache.org/xsd/maven-4.0.0.xsd“&GT;

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.deepak.test</groupId>
  <artifactId>b-project</artifactId>
  <version>1.0.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
           <groupId>com.deepak.test</groupId>
           <artifactId>a-project</artifactId>
           <version>1.0.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>

项目B中使用项目A中的A类(导入省略)的类

public ClassB {
  public static void someMethodB() {
       ClassA.someMethodA();
  }
}

使用此设置,在项目A中,如果我右键单击 someMethodA() ClassA 并选择 References - &gt;工作区,Eclipse正确显示 ClassB.someMethodB()搜索视图。

但是,如果我更新项目A的版本标签以说明发布版本,即将Project A pom.xml中的版本标记更改为:

<version>1.0.0</version>

然后然后如果我们再次执行查找引用操作,Eclipse将显示 ClassB.someMethodB()作为参考。有没有什么方法可以让Eclipse将它显示为一个潜在的匹配(或许可以使用旧版本的jar)?

我知道执行文件搜索是唯一的其他解决方案,但这不如从类文件执行引用匹配那么准确,并导致与Maven子模块等重复匹配。

我正在使用Eclipse 4.5.2(Mars),如果有帮助,则使用JDK 1.8和Maven 3.3

0 个答案:

没有答案