Vampire
05/12/2025, 10:02 AM> Could not resolve all files for configuration ':foo:compileClasspath'.
> Could not resolve commons-io:commons-io:{strictly 2.11.0}.
Required by:
project :foo > project :bar
> Cannot find a version of 'commons-io:commons-io' that satisfies the version constraints:
Dependency path 'my.group:foo:1' --> 'my.group:bar:1' (apiElements) --> 'commons-io:commons-io:{strictly 2.11.0}'
Dependency path 'my.group:foo:1' --> 'my.group:bar:1' (apiElements) --> 'org.apache.poi:poi-ooxml:5.4.1' (compile) --> 'commons-io:commons-io:2.18.0'
Dependency path 'my.group:foo:1' --> 'my.group:bar:1' (apiElements) --> 'org.apache.poi:poi:5.4.1' (compile) --> 'commons-io:commons-io:2.18.0'
Dependency path 'my.group:foo:1' --> 'my.group:bar:1' (apiElements) --> 'org.apache.poi:poi-ooxml:5.4.1' (compile) --> 'org.apache.commons:commons-compress:1.27.1' (compile) --> 'commons-io:commons-io:2.16.1'
Dependency path 'my.group:foo:1' --> 'my.group:bar:1' (apiElements) --> 'org.apache.xmlgraphics:batik-svg-dom:1.18' (compile) --> 'org.apache.xmlgraphics:batik-awt-util:1.18' (compile) --> 'org.apache.xmlgraphics:xmlgraphics-commons:2.10' (compile) --> 'commons-io:commons-io:2.11.0'Octavia Togami
05/12/2025, 3:54 PMOctavia Togami
05/12/2025, 3:55 PMThomas Broyer
05/12/2025, 4:15 PMmelix
05/15/2025, 8:51 AMstrictly is a bit like force, but it's not. "stricly" is designed as "this is a strict condition that must be met". Therefore, if dependency A says "strictly 1.1" and B says "prefer 1.2", then there's no conflict and 1.1 wins. The issue is when B says "require 1.2", because the semantics of require are "it will not work with earlier releases". So, "strictly 1.1 and require 1.2" cannot be achieved.melix
05/15/2025, 8:52 AMVampire
05/15/2025, 9:21 AMmelix
05/15/2025, 9:23 AMVampire
05/15/2025, 9:38 AMA strict version cannot be upgraded and overrides any transitive dependency versions
melix
05/15/2025, 9:39 AMmelix
05/15/2025, 9:40 AMVampire
05/15/2025, 9:44 AMVampire
05/15/2025, 12:51 PMOr isCopy codeorg.bouncycastle:bcpkix-jdk18on:{strictly 1.77} -> 1.80 (c)
useTarget in a resolutionStrategy overwriting strict versions?melix
05/15/2025, 1:13 PMVampire
05/15/2025, 1:34 PMjdk15on, jdk18on, .... variants of BC to use jdk18on of everything and then let normal conflict resolution happen. 😞Vampire
05/15/2025, 1:35 PMuseTarget effectively is a long version of force with more possibilities 🙈Vampire
05/15/2025, 1:36 PM