Support downloading from other Maven repositories Developers may now request buck to use a local mirror by setting the URL into local.properties, a file already ignored under the current buck build process, e.g.: download.GERRIT = http://nexus.my-company.com/ download.MAVEN_CENTRAL = http://nexus.my-company.com/ To support this usage buck now passes to download_jar.py only the name of the repository in the URL. download_jar parses local.properties (if present) and replaces the "MAVEN_CENTRAL:" prefix with the URL supplied by the user. Because the URL can vary cache entries in buck-cache are now using the SHA-1 we expect/verify against, instead of the SHA-1 of the URL. This makes it easier to find a specific JAR in the cache. The artifact, version and SHA-1 as named in the maven_jar() rule are the strings used in the file name in buck-cache. If no SHA-1 verification happens (e.g. source attachment JARs that are not included into the build) then sha1(canonical_url) is used. Here the canonical URL uses the repository id prefix string, e.g.: MAVEN_CENTRAL:org/apache/mina/mina-core/2.0.5/mina-core-2.0.5-sources.jar Change-Id: I5a469ab15fd36b81bf76f6b51e1110dfdcf04c86
diff --git a/Documentation/dev-buck.txt b/Documentation/dev-buck.txt index f97fe6e..dfa19dc 100644 --- a/Documentation/dev-buck.txt +++ b/Documentation/dev-buck.txt
@@ -136,11 +136,6 @@ buck build download ---- -Currently there is no way to download dependencies other than over an HTTP -connection from the source sites (Maven Central and the Gerrit storage -bucket). It is not yet possible to use, for example, a corporate Nexus -proxy. - When downloading from behind a proxy (which is common in some corporate environments), it might be necessary to explicitly specify the proxy that is then used by `curl`: @@ -149,6 +144,15 @@ export http_proxy=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port> ---- +Redirection to local mirrors of Maven Central and the Gerrit storage +bucket is supported by defining specific properties in +`local.properties`, a file that is not tracked by Git: + +---- + echo download.GERRIT = http://nexus.my-company.com/ >>local.properties + echo download.MAVEN_CENTRAL = http://nexus.my-company.com/ >>local.properties +---- + Build Process Switch Exit Criteria ----------------------------------