diff --git a/initializer-generator/src/main/java/com/alibaba/initializer/generation/extension/build/maven/MulitModuleMavenBuildProjectContributor.java b/initializer-generator/src/main/java/com/alibaba/initializer/generation/extension/build/maven/MulitModuleMavenBuildProjectContributor.java index e72c7e8..6bcf735 100644 --- a/initializer-generator/src/main/java/com/alibaba/initializer/generation/extension/build/maven/MulitModuleMavenBuildProjectContributor.java +++ b/initializer-generator/src/main/java/com/alibaba/initializer/generation/extension/build/maven/MulitModuleMavenBuildProjectContributor.java @@ -153,22 +153,22 @@ public class MulitModuleMavenBuildProjectContributor extends MavenBuildProjectCo } } else { + List dependModules + = module.getDependModules() == null ? Collections.emptyList() : module.getDependModules().stream() + .distinct().map(this::toFinalArtifactId).toList(); if (module.isMain()) { - // main module depend all other submodules - List subModules = arch.getSubModules(); - for (Module subModule : subModules) { - if (subModule == module) { - continue; - } - addModuleDependency(toFinalArtifactId(subModule.getName())); + if (dependModules.isEmpty()) { + // main module depend all other submodules + List subModules = arch.getSubModules().stream().distinct() + .filter(subModule -> subModule != module) + .map(subModule -> toFinalArtifactId(subModule.getName())) + .toList(); + addModuleDependencies(subModules); + } else { + addModuleDependencies(dependModules); } } else { - List dependModules - = module.getDependModules() == null ? Collections.emptyList() : module.getDependModules().stream() - .distinct().map(dependModule -> toFinalArtifactId(dependModule)).collect(Collectors.toUnmodifiableList()); - for (String dependModule : dependModules) { - addModuleDependency(dependModule); - } + addModuleDependencies(dependModules); } // remove all dependencymanager @@ -206,6 +206,12 @@ public class MulitModuleMavenBuildProjectContributor extends MavenBuildProjectCo } } + private void addModuleDependencies(List dependModules) { + for (String dependModule : dependModules) { + addModuleDependency(dependModule); + } + } + private void addModuleDependency(String subModule) { this.build.dependencies().add(subModule, Dependency.withCoordinates(description.getGroupId(), subModule)); }