@@ -86,13 +86,12 @@ private Upgrade resolveUpgrade(Library library, Map<String, Library> libraries)
8686
8787 private List <VersionOption > getVersionOptions (Library library , Map <String , Library > libraries ) {
8888 if (library .getVersion ().getVersionAlignment () != null ) {
89- VersionOption alignedVersionOption = alignedVersionOption (library , libraries );
90- if (!isPermitted (alignedVersionOption .version , library .getProhibitedVersions ())) {
91- throw new InvalidUserDataException ("Version alignment failed. Version " + alignedVersionOption .version
92- + " from " + library .getName () + " is prohibited" );
93- }
94- return Collections .singletonList (alignedVersionOption );
89+ return determineAlignedVersionOption (library , libraries );
9590 }
91+ return determineResolvedVersionOptions (library );
92+ }
93+
94+ private List <VersionOption > determineResolvedVersionOptions (Library library ) {
9695 Map <String , SortedSet <DependencyVersion >> moduleVersions = new LinkedHashMap <>();
9796 DependencyVersion libraryVersion = library .getVersion ().getVersion ();
9897 for (Group group : library .getGroups ()) {
@@ -120,6 +119,18 @@ private List<VersionOption> getVersionOptions(Library library, Map<String, Libra
120119 .collect (Collectors .toList ());
121120 }
122121
122+ private List <VersionOption > determineAlignedVersionOption (Library library , Map <String , Library > libraries ) {
123+ VersionOption alignedVersionOption = alignedVersionOption (library , libraries );
124+ if (alignedVersionOption == null ) {
125+ return Collections .emptyList ();
126+ }
127+ if (!isPermitted (alignedVersionOption .version , library .getProhibitedVersions ())) {
128+ throw new InvalidUserDataException ("Version alignment failed. Version " + alignedVersionOption .version
129+ + " from " + library .getName () + " is prohibited" );
130+ }
131+ return Collections .singletonList (alignedVersionOption );
132+ }
133+
123134 private VersionOption alignedVersionOption (Library library , Map <String , Library > libraries ) {
124135 VersionAlignment versionAlignment = library .getVersion ().getVersionAlignment ();
125136 Library alignmentLibrary = libraries .get (versionAlignment .getLibraryName ());
@@ -148,8 +159,9 @@ private VersionOption alignedVersionOption(Library library, Map<String, Library>
148159 throw new InvalidUserDataException ("Cannot align with library '" + versionAlignment .getLibraryName ()
149160 + "' as it uses multiple different versions of this library's modules" );
150161 }
151- String requiredVersion = versions .iterator ().next ();
152- return new AlignedVersionOption (DependencyVersion .parse (requiredVersion ), alignmentLibrary );
162+ DependencyVersion version = DependencyVersion .parse (versions .iterator ().next ());
163+ return library .getVersion ().getVersion ().equals (version ) ? null
164+ : new AlignedVersionOption (version , alignmentLibrary );
153165 }
154166
155167 private boolean isPermitted (DependencyVersion dependencyVersion , List <ProhibitedVersion > prohibitedVersions ) {
0 commit comments