private DigestItem resolveArtifact()

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);
    }