diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index a47fb34..b6de554 100644 Binary files a/lib/bld/bld-wrapper.jar and b/lib/bld/bld-wrapper.jar differ diff --git a/src/main/java/rife/bld/BaseProject.java b/src/main/java/rife/bld/BaseProject.java index 8f30c9b..98f23c3 100644 --- a/src/main/java/rife/bld/BaseProject.java +++ b/src/main/java/rife/bld/BaseProject.java @@ -1618,6 +1618,7 @@ public class BaseProject extends BuildExecutor { private String createHash() { var resolution = new VersionResolution(properties()); var finger_print = new StringBuilder(); + finger_print.append(String.join("\n", resolution.versionOverrides().entrySet().stream().map(e -> e.getKey() + ":" + e.getValue()).toList())); for (var repository : repositories()) { finger_print.append(repository.toString()); finger_print.append('\n'); @@ -1627,7 +1628,7 @@ public class BaseProject extends BuildExecutor { finger_print.append('\n'); if (entry.getValue() != null) { for (var dependency : entry.getValue()) { - finger_print.append(resolution.overrideDependency(dependency).toString()); + finger_print.append(dependency.toString()); finger_print.append('\n'); } } diff --git a/src/main/java/rife/bld/dependencies/VersionResolution.java b/src/main/java/rife/bld/dependencies/VersionResolution.java index 37e69a1..c010f17 100644 --- a/src/main/java/rife/bld/dependencies/VersionResolution.java +++ b/src/main/java/rife/bld/dependencies/VersionResolution.java @@ -112,4 +112,14 @@ public class VersionResolution { original.exclusions(), original.parent()); } + + /** + * Returns the map of version overrides, where the key is the name of the dependency and the value is the overridden version. + * + * @return the map of version overrides + * @since 2.0 + */ + public Map versionOverrides() { + return versionOverrides_; + } } diff --git a/src/main/java/rife/bld/operations/DependencyTreeOperation.java b/src/main/java/rife/bld/operations/DependencyTreeOperation.java index f2e2a40..b3deb28 100644 --- a/src/main/java/rife/bld/operations/DependencyTreeOperation.java +++ b/src/main/java/rife/bld/operations/DependencyTreeOperation.java @@ -6,6 +6,7 @@ package rife.bld.operations; import rife.bld.BaseProject; import rife.bld.BldVersion; +import rife.bld.BuildExecutor; import rife.bld.dependencies.*; import rife.bld.wrapper.Wrapper; import rife.ioc.HierarchicalProperties; @@ -24,6 +25,7 @@ import static rife.bld.dependencies.Scope.*; */ public class DependencyTreeOperation extends AbstractOperation { private HierarchicalProperties properties_ = null; + private HierarchicalProperties extensionProperties_ = null; private ArtifactRetriever retriever_ = null; private final List repositories_ = new ArrayList<>(); private final DependencyScopes dependencies_ = new DependencyScopes(); @@ -68,7 +70,7 @@ public class DependencyTreeOperation extends AbstractOperation @@ -338,4 +358,17 @@ public class DependencyTreeOperation extends AbstractOperation resolution_.overrideDependency(Dependency.parse(d))).toList()); @@ -70,14 +69,18 @@ public class WrapperExtensionResolver { downloadSources_ = downloadSources; downloadJavadoc_ = downloadJavadoc; fingerPrintHash_ = createHash( + resolution_, repositories_.stream().map(Objects::toString).toList(), dependencies_.stream().map(Objects::toString).toList(), downloadSources, downloadJavadoc); } - private String createHash(Collection repositories, Collection extensions, boolean downloadSources, boolean downloadJavadoc) { + private static String createHash(VersionResolution resolution, Collection repositories, Collection extensions, boolean downloadSources, boolean downloadJavadoc) { try { - var fingerprint = String.join("\n", repositories) + "\n" + String.join("\n", extensions) + "\n" + downloadSources + "\n" + downloadJavadoc; + var overrides_fp = String.join("\n", resolution.versionOverrides().entrySet().stream().map(e -> e.getKey() + ":" + e.getValue()).toList()); + var repositories_fp = String.join("\n", repositories); + var extensions_fp = String.join("\n", extensions); + var fingerprint = overrides_fp + "\n" + repositories_fp + "\n" + extensions_fp + "\n" + downloadSources + "\n" + downloadJavadoc; var digest = MessageDigest.getInstance("SHA-1"); digest.update(fingerprint.getBytes(StandardCharsets.UTF_8)); return StringUtils.encodeHexLower(digest.digest());