diff --git a/initializer-generator/src/main/java/com/alibaba/initializer/generation/InitializerProjectGenerationInvoker.java b/initializer-generator/src/main/java/com/alibaba/initializer/generation/InitializerProjectGenerationInvoker.java index f71a7bc..243c8da 100644 --- a/initializer-generator/src/main/java/com/alibaba/initializer/generation/InitializerProjectGenerationInvoker.java +++ b/initializer-generator/src/main/java/com/alibaba/initializer/generation/InitializerProjectGenerationInvoker.java @@ -105,7 +105,8 @@ public class InitializerProjectGenerationInvoker subDescription.setBaseDirectory(null); // multiple modules - sub module InitializerProjectGenerator subProjectGenerator = new InitializerProjectGenerator((ctx) -> customizeProjectGenerationContext(ctx, metadata, subModule)); - subProjectGenerator.generate(subDescription, generateProject(request, (desc) -> result.getRootDirectory().resolve(description.getBaseDirectory()).resolve(subModule.getName()))); + subProjectGenerator.generate(subDescription, + generateProject(request, (desc) -> result.getRootDirectory().resolve(description.getBaseDirectory()).resolve(desc.getName() + "-" + subModule.getName()))); } } 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 c3e66de..e72c7e8 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 @@ -21,6 +21,7 @@ import java.io.RandomAccessFile; import java.io.StringWriter; import java.lang.reflect.Field; import java.nio.file.Path; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -102,9 +103,9 @@ public class MulitModuleMavenBuildProjectContributor extends MavenBuildProjectCo // add submodule in root dependencymanager for (Module subModule : arch.getSubModules()) { - this.build.boms().add(subModule.getName(), + this.build.boms().add(toFinalArtifactId(subModule.getName()), DependencyBillOfMaterials - .withCoordinates(description.getGroupId(), subModule.getName()) + .withCoordinates(description.getGroupId(), toFinalArtifactId(subModule.getName())) .type(null) .scope(null) .version(VersionReference.ofValue(description.getVersion())) @@ -138,7 +139,7 @@ public class MulitModuleMavenBuildProjectContributor extends MavenBuildProjectCo writer.indented(() -> { writer.println(""); writer.indented(() -> modules.stream() - .map(name -> "" + name.getName() + "") + .map(name -> "" + toFinalArtifactId(name.getName()) + "") .forEach(writer::println)); writer.println("\n"); }); @@ -159,14 +160,14 @@ public class MulitModuleMavenBuildProjectContributor extends MavenBuildProjectCo if (subModule == module) { continue; } - addModuleDependency(subModule.getName()); + addModuleDependency(toFinalArtifactId(subModule.getName())); } } else { - List dependModules = module.getDependModules(); - if (dependModules != null) { - for (String dependModule : dependModules) { - addModuleDependency(dependModule); - } + List dependModules + = module.getDependModules() == null ? Collections.emptyList() : module.getDependModules().stream() + .distinct().map(dependModule -> toFinalArtifactId(dependModule)).collect(Collectors.toUnmodifiableList()); + for (String dependModule : dependModules) { + addModuleDependency(dependModule); } } @@ -175,8 +176,8 @@ public class MulitModuleMavenBuildProjectContributor extends MavenBuildProjectCo // set parent this.build.settings().parent(description.getGroupId(), description.getArtifactId(), description.getVersion(), "../pom.xml"); - this.build.settings().name(module.getName()); - this.build.settings().artifact(module.getName()); + this.build.settings().name(toFinalArtifactId(module.getName())); + this.build.settings().artifact(toFinalArtifactId(module.getName())); this.build.settings().group(null); this.build.settings().version(null); this.build.settings().description(module.getDescription()); @@ -230,4 +231,8 @@ public class MulitModuleMavenBuildProjectContributor extends MavenBuildProjectCo return insertIndex; } + private String toFinalArtifactId(String subModule) { + return description.getName() + "-" + subModule; + } + }