forked from mozilla-mobile/android-components
-
Notifications
You must be signed in to change notification settings - Fork 0
/
substitute-local-ac.gradle
46 lines (41 loc) · 2.06 KB
/
substitute-local-ac.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
def version = null
if (gradle.hasProperty("localProperties.autoPublish.android-components.dir")) {
// We're doing local development using the autoPublish system. This automatically rebuilds and
// publishes android-components packages whenever the source changes.
// This version string will selected the latest build package
version = '0.0.1-+'
} else if (gradle.hasProperty("localProperties.branchBuild.android-components.version")) {
// We're running a branch build. Here the version is set to the git commit id in
// local.properties
version = gradle.getProperty("localProperties.branchBuild.android-components.version")
} else {
throw new Exception("substitute-local-appservices.gradle called from unexpected context")
}
logger.lifecycle("[local-ac] adjusting project to use locally published android-components modules (${version})")
// Inject mavenLocal repository. This is where we're expected to publish modules.
repositories {
mavenLocal()
}
configurations.all { config ->
if (config.isCanBeResolved()) {
config.resolutionStrategy { strategy ->
dependencySubstitution {
all { dependency ->
if (!(dependency.requested instanceof ModuleComponentSelector)) {
// We only care about substituting for a module, not a project.
return
}
// For every org.mozilla.components.* module, substitute its version for '+'.
// '+' version tells gradle to resolve the latest available version.
// As long as 'mavenLocal' is in the repositories list, gradle should pick out
// latest published module during dependency resolution phase.
def group = dependency.requested.group
if (group == 'org.mozilla.components') {
def name = dependency.requested.module
dependency.useTarget([group: group, name: name, version: version])
}
}
}
}
}
}