Skip to content

Commit

Permalink
Add support for init script to mutate dependency resolution management
Browse files Browse the repository at this point in the history
Fixes #15772
  • Loading branch information
ljacomet committed Jan 20, 2021
1 parent 65be939 commit 81a51a9
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ public SettingsInternal process(GradleInternal gradle,

gradle.getBuildListenerBroadcaster().beforeSettings(settings);
applySettingsScript(settingsScript, settings);
settings.preventFromFurtherMutation();
LOGGER.debug("Timing: Processing settings took: {}", settingsProcessingClock.getElapsed());
return settings;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public SettingsEvaluatedCallbackFiringSettingsProcessor(SettingsProcessor delega
public SettingsInternal process(GradleInternal gradle, SettingsLocation settingsLocation, ClassLoaderScope buildRootClassLoaderScope, StartParameter startParameter) {
SettingsInternal settings = delegate.process(gradle, settingsLocation, buildRootClassLoaderScope, startParameter);
gradle.getBuildListenerBroadcaster().settingsEvaluated(settings);
settings.preventFromFurtherMutation();
return settings;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -762,6 +762,41 @@ You can figure out how project repositories are declared by configuring your bui
See https://docs.gradle.org/${GradleVersion.current().version}/userguide/declaring_repositories.html#sub:fail_build_on_project_repositories for details."""))
}

@Issue("https://github.com/gradle/gradle/issues/15772")
def "can add settings repositories in an init script"() {
given:
repository {
'org:module:1.0'()
}

buildFile << """
dependencies {
conf 'org:module:1.0'
}
"""

file("init.gradle") << """
settingsEvaluated {
it.dependencyResolutionManagement {
repositories {
maven { url '/doesnt/matter'}
}
}
}
"""

when:
repositoryInteractions {
'org:module:1.0' {
expectResolve()
}
}
executer.usingInitScript(file("init.gradle"))

then:
succeeds ':checkDeps'
}

void withSettingsPlugin() {
file("settings-plugin/build.gradle") << """
plugins {
Expand Down

0 comments on commit 81a51a9

Please sign in to comment.