in src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java [684:718]
private DigestItem resolveArtifact(final Artifact dependencyArtifact, boolean isOffline) throws IOException {
ArtifactResolutionRequest request = new ArtifactResolutionRequest()
.setArtifact(dependencyArtifact)
.setResolveRoot(true)
.setResolveTransitively(false)
.setLocalRepository(session.getLocalRepository())
.setRemoteRepositories(project.getRemoteArtifactRepositories())
.setOffline(session.isOffline() || isOffline)
.setForceUpdate(session.getRequest().isUpdateSnapshots())
.setServers(session.getRequest().getServers())
.setMirrors(session.getRequest().getMirrors())
.setProxies(session.getRequest().getProxies());
final ArtifactResolutionResult result = repoSystem.resolve(request);
if (!result.isSuccess()) {
throw new DependencyNotResolvedException("Cannot resolve in-project dependency: " + dependencyArtifact);
}
if (!result.getMissingArtifacts().isEmpty()) {
throw new DependencyNotResolvedException(
"Cannot resolve artifact: " + dependencyArtifact + ", missing: " + result.getMissingArtifacts());
}
if (result.getArtifacts().size() != 1) {
throw new IllegalStateException("Unexpected number of artifacts returned. Requested: " + dependencyArtifact
+ ", expected: 1, actual: " + result.getArtifacts());
}
final Artifact resolved = result.getArtifacts().iterator().next();
final HashAlgorithm algorithm = config.getHashFactory().createAlgorithm();
final String hash = algorithm.hash(resolved.getFile().toPath());
return DtoUtils.createDigestedFile(resolved, hash);
}