File tree Expand file tree Collapse file tree 2 files changed +44
-1
lines changed
main/java/org/gradlex/javamodule/dependencies
test/groovy/org/gradlex/javamodule/dependencies/test Expand file tree Collapse file tree 2 files changed +44
-1
lines changed Original file line number Diff line number Diff line change @@ -183,7 +183,7 @@ private Provider<String> mapByPrefix(Provider<String> moduleName) {
183183 return getModuleNamePrefixToGroup ().map (
184184 m -> {
185185 Optional <Map .Entry <String , String >> prefixToGroup = m .entrySet ().stream ()
186- .filter (e -> moduleName .get ().startsWith (e .getKey ())).findFirst ( );
186+ .filter (e -> moduleName .get ().startsWith (e .getKey ())).max ( Comparator . comparingInt ( e -> e . getKey (). length ()) );
187187 if (prefixToGroup .isPresent ()) {
188188 String group = prefixToGroup .get ().getValue ();
189189 String artifact = toProjectName (moduleName .get ().substring (prefixToGroup .get ().getKey ().length ()));
Original file line number Diff line number Diff line change 1+ package org.gradlex.javamodule.dependencies.test
2+
3+ import org.gradle.testkit.runner.TaskOutcome
4+ import org.gradlex.javamodule.dependencies.test.fixture.GradleBuild
5+ import spock.lang.Specification
6+
7+ class GroupMappingTest extends Specification {
8+
9+ @Delegate
10+ GradleBuild build = new GradleBuild ()
11+
12+ def " can map overlapping groups" () {
13+ given :
14+ def lib2ModuleInfoFile = file(" lib-b/src/main/java/module-info.java" )
15+ def lib2BuildFile = file(" lib-b/build.gradle.kts" ) << libBuildFile. text
16+ settingsFile << ' include("lib-b")'
17+
18+ libModuleInfoFile << ' module com.lib { }'
19+ libBuildFile << ' group = "com.foo"'
20+ lib2ModuleInfoFile << ' module com.example.lib.b { }'
21+ lib2BuildFile << ' group = "com.example"'
22+ appModuleInfoFile << '''
23+ module org.gradlex.test.app {
24+ requires com.lib;
25+ requires com.example.lib.b;
26+ }
27+ '''
28+
29+ appBuildFile << '''
30+ javaModuleDependencies {
31+ moduleNamePrefixToGroup.put("com.", "com.foo")
32+ moduleNamePrefixToGroup.put("com.example.", "com.example")
33+ }
34+ '''
35+
36+ when :
37+ def result = runner(' assemble' ). build()
38+
39+ then :
40+ result. task(" :app:compileJava" ). outcome == TaskOutcome . SUCCESS
41+ }
42+
43+ }
You can’t perform that action at this time.
0 commit comments