我们有许多不同的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