cloud-opensource-java
cloud-opensource-java copied to clipboard
Linkage Checker to provide a diagnosis for linkage error
Background
When there is a linkage error, people need to check why it happens (Example case of google-api-client-1.27.0). It would be nice if the tool provides a diagnosis.
Example Information
With the case of google-api-client
-
GoogleApacheHttpTransportingoogle-api-client:1.27.0usescom.google.api.client.http.apache.ApacheHttpTransport$Builderbut the class is not found in the class path. (The tool already has this information) -
com.google.http-client:google-http-client:1.27.0has the missing class. But the class path hascom.google.http-client:google-http-client:1.28.0instead. (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.