From 36c4ae1b9650ec1aade2e5e0f5847359083c1b5e Mon Sep 17 00:00:00 2001 From: Teletha Date: Tue, 6 Jun 2023 13:12:02 +0900 Subject: [PATCH] feat: Use latest version resolver when conflicts libraries. --- src/main/java/bee/api/Library.java | 10 ++++++++++ src/main/java/bee/api/Repository.java | 21 +++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/bee/api/Library.java b/src/main/java/bee/api/Library.java index b654c70f6..70f41e663 100644 --- a/src/main/java/bee/api/Library.java +++ b/src/main/java/bee/api/Library.java @@ -284,6 +284,16 @@ void setVersion(String version) { throw new Error(); } + /** + * Test whether the specified library is same product or not. + * + * @param library + * @return + */ + public boolean isSame(Library library) { + return Objects.equals(group, library.group) && Objects.equals(name, library.name) && Objects.equals(classfier, library.classfier); + } + /** * {@inheritDoc} */ diff --git a/src/main/java/bee/api/Repository.java b/src/main/java/bee/api/Repository.java index f4793763b..ab9720d5d 100644 --- a/src/main/java/bee/api/Repository.java +++ b/src/main/java/bee/api/Repository.java @@ -294,16 +294,33 @@ private Set collectDependency(Project project, Set scopes, Set 0) { + set.remove(old); + set.add(lib); + } + } else { + set.add(lib); + } } } catch (Exception e) { throw I.quiet(e); } } - return set; } + private Library checkDupilication(Set set, Library target) { + for (Library lib : set) { + if (lib.isSame(target)) { + return lib; + } + } + return null; + } + /** * Resolve the latest version of the specified library. *