Skip to content

Commit dc3e555

Browse files
committed
Fixed root project directory lookup (issue with Gradle 4.6+)
1 parent 37ab2cf commit dc3e555

File tree

5 files changed

+25
-27
lines changed

5 files changed

+25
-27
lines changed

src/main/groovy/com/alexvasilkov/vcs/VcsProperties.groovy

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
package com.alexvasilkov.vcs
22

3+
import org.gradle.api.initialization.Settings
4+
35
@Singleton
46
class VcsProperties {
57

8+
private static final String DEFAULT_DIR = 'libraries'
9+
610
def dir
711
boolean cleanup = true
812

@@ -11,4 +15,11 @@ class VcsProperties {
1115
closure()
1216
}
1317

18+
void resolve(Settings settings) {
19+
if (!dir) dir = new File(settings.rootDir, DEFAULT_DIR)
20+
}
21+
22+
File getDir() {
23+
return dir as File
24+
}
1425
}

src/main/groovy/com/alexvasilkov/vcs/VcsSettingsPlugin.groovy

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ class VcsSettingsPlugin implements Plugin<Settings> {
2424
CredentialsHelper.init(settings.gradle)
2525

2626
settings.gradle.settingsEvaluated { Settings sett ->
27+
VcsProperties.instance.resolve(sett)
2728
resolveDependenciesRecursively(sett, sett.projectDescriptorRegistry.allProjects)
28-
cleanup(sett)
29+
cleanup()
2930
}
3031

3132
// Adding created vcs projects dependencies for each project
@@ -51,12 +52,12 @@ class VcsSettingsPlugin implements Plugin<Settings> {
5152
if (script.metaClass.respondsTo(script, 'vcs')) {
5253
// Adding git method
5354
script.binding.setVariable('git', { Map params ->
54-
dependencies.add(project.name, new GitDependency(project, params))
55+
dependencies.add(project.name, new GitDependency(params))
5556
})
5657

5758
// Adding svn method
5859
script.binding.setVariable('svn', { Map params ->
59-
dependencies.add(project.name, new SvnDependency(project, params))
60+
dependencies.add(project.name, new SvnDependency(params))
6061
})
6162

6263
// Executing configuration method
@@ -86,10 +87,10 @@ class VcsSettingsPlugin implements Plugin<Settings> {
8687
if (newProjects) resolveDependenciesRecursively(settings, newProjects)
8788
}
8889

89-
private void cleanup(Settings settings) {
90+
private void cleanup() {
9091
if (VcsProperties.instance.cleanup) {
9192
// Cleaning up unused directories and files
92-
File libsDir = VcsDependency.getDefaultDir(settings.defaultProject)
93+
File libsDir = VcsProperties.instance.dir
9394
libsDir.listFiles().each { File dir ->
9495
boolean found = false
9596
dependencies.all().each { VcsDependency d ->

src/main/groovy/com/alexvasilkov/vcs/dependency/GitDependency.groovy

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
package com.alexvasilkov.vcs.dependency
22

33
import org.gradle.api.GradleException
4-
import org.gradle.api.initialization.ProjectDescriptor
54

65
class GitDependency extends VcsDependency {
76

87
final String remote
98
final String commit
109

11-
GitDependency(ProjectDescriptor project, Map map) {
12-
super(project, map)
10+
GitDependency(Map map) {
11+
super(map)
1312
remote = map.remote
1413
commit = map.commit
1514
}
@@ -29,10 +28,9 @@ class GitDependency extends VcsDependency {
2928
void checkEquals(VcsDependency d) {
3029
super.checkEquals(d)
3130

32-
GitDependency g = (GitDependency) d;
31+
GitDependency g = (GitDependency) d
3332

3433
if (g.remote != remote) throwEqualCheckFail('remote', remote, g.remote)
3534
if (g.commit != commit) throwEqualCheckFail('commit', commit, g.commit)
3635
}
37-
3836
}

src/main/groovy/com/alexvasilkov/vcs/dependency/SvnDependency.groovy

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
package com.alexvasilkov.vcs.dependency
22

33
import org.gradle.api.GradleException
4-
import org.gradle.api.initialization.ProjectDescriptor
54

65
class SvnDependency extends VcsDependency {
76

87
final long rev
98
final boolean isHead
109

11-
SvnDependency(ProjectDescriptor project, Map map) {
12-
super(project, map)
10+
SvnDependency(Map map) {
11+
super(map)
1312
isHead = 'HEAD'.equals(map.rev)
1413
rev = map.rev instanceof Long || map.rev instanceof Integer ? map.rev : 0L
1514
}
@@ -24,10 +23,9 @@ class SvnDependency extends VcsDependency {
2423
void checkEquals(VcsDependency d) {
2524
super.checkEquals(d)
2625

27-
SvnDependency s = (SvnDependency) d;
26+
SvnDependency s = (SvnDependency) d
2827

2928
if (s.isHead != isHead) throwEqualCheckFail('isHead', isHead, s.isHead)
3029
if (s.rev != rev) throwEqualCheckFail('rev', rev, s.rev)
3130
}
32-
3331
}

src/main/groovy/com/alexvasilkov/vcs/dependency/VcsDependency.groovy

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ package com.alexvasilkov.vcs.dependency
33
import com.alexvasilkov.vcs.VcsProperties
44
import com.alexvasilkov.vcs.util.CredentialsHelper
55
import org.gradle.api.GradleException
6-
import org.gradle.api.initialization.ProjectDescriptor
76

87
abstract class VcsDependency {
98

10-
private static final String DEFAULT_DIR = 'libraries'
119
private static final String DEFAULT_AUTH_GROUP = 'VCS'
1210
private static final String DEFAULT_CONFIG_NAME = 'implementation'
1311

@@ -27,13 +25,13 @@ abstract class VcsDependency {
2725

2826
final File repoDir
2927

30-
VcsDependency(ProjectDescriptor project, Map map) {
28+
VcsDependency(Map map) {
3129
name = map.name
3230
url = map.url
3331
path = map.path
3432

3533
File mapDir = map.dir instanceof String || map.dir instanceof File ? map.dir as File : null
36-
dir = (mapDir ? mapDir : getDefaultDir(project)).canonicalFile
34+
dir = (mapDir ? mapDir : VcsProperties.instance.dir).canonicalFile
3735

3836
noAuth = map.noAuth instanceof Boolean ? map.noAuth : false
3937
authGroup = map.authGroup ? map.authGroup : DEFAULT_AUTH_GROUP
@@ -93,12 +91,4 @@ abstract class VcsDependency {
9391
throw new GradleException("Found 2 incompatible dependencies '${name}' with different" +
9492
" '${paramName}' values: '${val1}' and '${val2}'")
9593
}
96-
97-
static File getDefaultDir(ProjectDescriptor project) {
98-
if (VcsProperties.instance.dir) return VcsProperties.instance.dir as File
99-
100-
ProjectDescriptor root = project
101-
while (root.parent != null) root = root.parent
102-
return new File(root.projectDir, DEFAULT_DIR)
103-
}
10494
}

0 commit comments

Comments
 (0)