GoogleCloudPlatform / GoogleCloudPlatform/cloud-opensource-java

Linkage Checker to provide a diagnosis for linkage error

未关闭
#487 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement p2
主要语言
Java
星标
163
派生
80
PR 合并指标
30 天内没有已合并 PR

描述

# Background

When there is a linkage error, people need to check why it happens ([Example case of google-api-client-1.27.0](https://github.com/GoogleCloudPlatform/cloud-opensource-java/issues/468)). It would be nice if the tool provides a diagnosis.

# Example Information

With the case of google-api-client

- `GoogleApacheHttpTransport` in `google-api-client:1.27.0` uses `com.google.api.client.http.apache.ApacheHttpTransport$Builder` but the class is not found in the class path. (The tool already has this information)
- `com.google.http-client:google-http-client:1.27.0` has the missing class. But the class path has `com.google.http-client:google-http-client:1.28.0` instead. (new information)

# Test Case

```
LinkageChecker -a com.google.cloud:google-cloud-bigtable:0.81.0-alpha,com.google.cloud:google-cloud-core-http:1.63.0
```

# Data

- With #498, Artifact.getFile().getPath() gives jar file path.
- ClassDumper already has jarFileToClasses and classToJarFiles. This enhancement may leverage these maps.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。