Skip to content

Commit cdaf79f

Browse files
committed
Support modules in nested folders inside a dircetory
1 parent 86236a0 commit cdaf79f

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

src/main/java/org/gradlex/javamodule/dependencies/initialization/Directory.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,19 @@ public void plugin(String id) {
4646
getPlugins().add(id);
4747
}
4848

49-
public void module(String moduleFolder, Action<Module> action) {
50-
Module module = addModule(moduleFolder);
49+
public void module(String subDirectory) {
50+
module(subDirectory, m -> {});
51+
}
52+
53+
public void module(String subDirectory, Action<Module> action) {
54+
Module module = addModule(subDirectory);
5155
action.execute(module);
52-
customizedModules.put(moduleFolder, module);
56+
customizedModules.put(subDirectory, module);
5357
}
5458

55-
Module addModule(String moduleFolder) {
59+
Module addModule(String subDirectory) {
5660
Module module = getObjects().newInstance(Module.class, root);
57-
module.getDirectory().convention(moduleFolder);
61+
module.getDirectory().convention(subDirectory);
5862
module.getGroup().convention(getGroup());
5963
module.getPlugins().addAll(getPlugins());
6064
return module;

src/main/java/org/gradlex/javamodule/dependencies/initialization/JavaModulesExtension.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import java.io.File;
3939
import java.nio.file.Paths;
4040
import java.util.List;
41+
import java.util.Map;
4142

4243
public abstract class JavaModulesExtension {
4344

@@ -69,18 +70,21 @@ public void directory(String path) {
6970
}
7071

7172
public void directory(String path, Action<Directory> action) {
72-
Directory directory = getObjects().newInstance(Directory.class, new File(settings.getRootDir(), path));
73+
File modulesDirectory = new File(settings.getRootDir(), path);
74+
Directory directory = getObjects().newInstance(Directory.class, modulesDirectory);
7375
action.execute(directory);
7476

75-
File[] projectDirs = new File(settings.getRootDir(), path).listFiles();
77+
File[] projectDirs = modulesDirectory.listFiles();
7678
if (projectDirs == null) {
77-
throw new RuntimeException("Failed to inspect: " + new File(settings.getRootDir(), path));
79+
throw new RuntimeException("Failed to inspect: " + modulesDirectory);
80+
}
81+
82+
for (Module module : directory.customizedModules.values()) {
83+
includeModule(module, new File(modulesDirectory, module.getDirectory().get()));
7884
}
7985

8086
for (File projectDir : projectDirs) {
81-
if (directory.customizedModules.containsKey(projectDir.getName())) {
82-
includeModule(directory.customizedModules.get(projectDir.getName()), projectDir);
83-
} else {
87+
if (!directory.customizedModules.containsKey(projectDir.getName())) {
8488
includeModule(directory.addModule(projectDir.getName()), projectDir);
8589
}
8690
}

0 commit comments

Comments
 (0)