Mercurial > public > develkit
annotate init.gradle @ 94:1290b23e7b76
modify ivy and gradle to use same local repo
author | smith@nwoca.org |
---|---|
date | Sat, 03 Mar 2012 21:19:58 +0000 |
parents | 90325a10fe95 |
children | ebb42488396a |
rev | line source |
---|---|
91 | 1 |
2 gradle.ssdtDevelkitLocation = gradle.hasProperty('ssdtDevelkitLocation') ? gradle.ssdtDevelkitLocation : 'http://hg.ssdt-ohio.org/browse/public/develkit' | |
73 | 3 |
94
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
4 ant.property(file: System.getProperty('user.home') + "/.ssdt/private.properties") |
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
5 if (ant.properties['ivy.default.ivy.user.dir']) { |
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
6 gradle.ivyUserDir = ant.properties['ivy.default.ivy.user.dir'] ?: System.getProperty('user.home') + "/.ivy2" |
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
7 } |
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
8 |
73 | 9 gradle.addListener(new ArtifactoryGradleSettings()) |
10 | |
77 | 11 gradle.bambooBuild = System.getenv().any { it.key.startsWith('BAMBOO')} |
79 | 12 logger.info "applying SSDT artifactory Gradle Settings (bamboo: $gradle.bambooBuild)" |
13 | |
14 if (gradle.bambooBuild) { | |
85 | 15 gradle.ssdtGradlekitLocation = gradle.hasProperty('ssdtGradlekitLocation') ? gradle.ssdtGradlekitLocation : 'http://hg.ssdt-ohio.org/ssdt/gradlekit/raw-file/tip' |
16 apply from: "${gradle.ssdtGradlekitLocation}/artifactory.gradle" | |
79 | 17 } |
76 | 18 |
85 | 19 |
20 apply from: "${gradle.ssdtDevelkitLocation}/metrics.gradle" | |
21 | |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
22 task wrapper(type: Wrapper) { |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
23 gradleVersion = '1.0-milestone-7' |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
24 } |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
25 |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
26 wrapper << { |
83 | 27 // patch wrapper path for 1.0-milestone-7 (http://issues.gradle.org/browse/GRADLE-1823) |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
28 ant.replace(file: 'gradlew', token: '\\wrapper\\gradle-wrapper.jar',value:'/wrapper/gradle-wrapper.jar') |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
29 } |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
30 |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
31 allprojects { |
85 | 32 |
84 | 33 task cleanLocal(description: "removes all artifacts from developer's local repository") << { |
34 | |
75 | 35 def local = project.repositories.find { it.name == 'local' } |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
36 if ( local ) { |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
37 logger.info "removing local repo: $it" |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
38 new File(System.properties['user.home'] + "/.ssdt/local-repo").deleteDir() |
94
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
39 new File(gradle.ivyUserDir + "/local").deleteDir() |
75 | 40 } |
79 | 41 } |
85 | 42 |
78
e47f80ef056b
finish cleanLocal. start adding artifactory plugin
smith@nwoca.org
parents:
77
diff
changeset
|
43 cleanLocal.onlyIf { |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
44 project.repositories.any { it.name == 'local' } |
79 | 45 } |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
46 |
75 | 47 } |
48 | |
73 | 49 class ArtifactoryGradleSettings extends BuildAdapter implements BuildListener { |
79 | 50 |
73 | 51 def void projectsEvaluated(Gradle gradle) { |
83 | 52 def ssdtArtifactory = 'http://repos.ssdt.nwoca.org/artifactory' |
79 | 53 Project root = gradle.getRootProject() |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
54 root.allprojects { |
83 | 55 def thisProject = delegate |
74 | 56 configurations.all { |
57 resolutionStrategy.cacheChangingModulesFor 120, 'minutes' | |
58 resolutionStrategy.cacheDynamicVersionsFor 120, 'minutes' | |
79 | 59 } |
73 | 60 repositories { |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
61 if (!gradle.bambooBuild) { |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
62 add(new org.apache.ivy.plugins.resolver.FileSystemResolver()) { |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
63 name = 'local' |
94
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
64 addIvyPattern gradle.ivyUserDir + "/local/[module]-ivy-[revision].xml" |
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
65 addArtifactPattern gradle.ivyUserDir + '/local/[module]-[revision](-[classifier]).[ext]' |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
66 descriptor = 'optional' |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
67 checkmodified = true |
94
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
68 changingMatcher = 'regexp' |
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
69 changingPattern = '.*SNAPSHOT' |
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
70 force = true |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
71 } |
79 | 72 } |
74 | 73 add(new org.apache.ivy.plugins.resolver.URLResolver()) { |
83 | 74 name = 'ssdt-snapshots' |
75 m2compatible = true | |
76 url = "${ssdtArtifactory}/ssdt-snapshots" | |
77 addArtifactPattern("${url}/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]") | |
78 addIvyPattern("${url}/[organization]/[module]/ivy-[revision].xml") | |
79 checkmodified = true | |
80 changingMatcher = 'regexp' | |
81 changingPattern = '.*SNAPSHOT' | |
74 | 82 } |
83 | 83 add(new org.apache.ivy.plugins.resolver.URLResolver()) { |
84 name = 'ssdt-releases' | |
85 m2compatible = false | |
86 url = "${ssdtArtifactory}/ssdt-releases" | |
87 addArtifactPattern("${url}/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]") | |
88 addIvyPattern("${url}/[organization]/[module]/ivy-[revision].xml") | |
74 | 89 } |
83 | 90 mavenRepo name: 'ssdt-repo', url: "${ssdtArtifactory}/ssdt-repo" |
75 | 91 |
92 } | |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
93 |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
94 if ( thisProject.repositories.find { it.name == 'local' } ) { |
87 | 95 uploadArchives { |
96 repositories { | |
97 add thisProject.repositories.local | |
98 } | |
99 } | |
85 | 100 |
87 | 101 thisProject.tasks.add("publishLocal") { |
102 description = "Publishes this projects artifacts to developer's local repository" | |
103 dependsOn = ["uploadArchives"] | |
104 } | |
75 | 105 } |
73 | 106 } |
107 } | |
108 } |