Gitiles: Implement Buck driven build Until extension system is released by Buck team [1], factor out existing Buck building blocks as Bucklets in standalone git repository and reuse it as Git submodule to implement Buck driven build [2]. To build gitiles `gitiles` target is used: buck build gitiles To build servlet, sources and javadoc in addition, `all` target is used: buck build all that produces: buck-out/gen/gitiles.war buck-out/gen/servlet.jar buck-out/gen/src.jar buck-out/gen/javadoc.jar To execute the tests: buck test --all To generate eclipse project: bucklets/tools/eclipse.py To fetch sources for all dependent libraries too: bucklets/tools/eclipse.py --src To install gitiles-servlet into local Maven repository: buck build mvn_install To deploy gitiles-servlet into remote Maven repository: buck build mvn_deploy [1] http://stackoverflow.com/questions/16681527/buck-vs-gradle-pros-and-cons-for-android-build-systems [2] https://gerrit.googlesource.com/bucklets Change-Id: Ib824dac6423d69c298f9c30ed7a0c05b4d6447c0
diff --git a/gitiles-dev/BUCK b/gitiles-dev/BUCK new file mode 100644 index 0000000..b50f58b --- /dev/null +++ b/gitiles-dev/BUCK
@@ -0,0 +1,17 @@ +java_library( + name = 'dev', + srcs = glob(['src/main/java/**/*.java']), + deps = [ + '//gitiles-servlet:servlet', + '//lib:guava', + '//lib/jgit:jgit', + '//lib/jgit:jgit-servlet', + '//lib/jetty:server', + '//lib/jetty:servlet', + '//lib/slf4j:slf4j-api', + '//lib/slf4j:slf4j-simple', + '//lib:servlet-api_3_0', + '//lib:soy', + ], + visibility = ['PUBLIC'], +)
diff --git a/gitiles-dev/pom.xml b/gitiles-dev/pom.xml deleted file mode 100644 index e89732a..0000000 --- a/gitiles-dev/pom.xml +++ /dev/null
@@ -1,111 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -Copyright 2012 Google Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>com.google.gitiles</groupId> - <artifactId>gitiles-parent</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - - <artifactId>gitiles-dev</artifactId> - <packaging>jar</packaging> - <name>Gitiles - Development</name> - - <description> - Gitiles running with an embedded Jetty server. - </description> - - <properties> - <jettyVersion>8.1.7.v20120910</jettyVersion> - </properties> - - <dependencies> - <dependency> - <groupId>com.google.gitiles</groupId> - <artifactId>gitiles-servlet</artifactId> - <version>${project.version}</version> - </dependency> - - <dependency> - <groupId>org.eclipse.jetty.orbit</groupId> - <artifactId>javax.servlet</artifactId> - <!-- The bulk of Gitiles is designed to compile and run against Servlet API - 2.5, but the embedded Jetty 8 in this module only requires Servlet API - 3.0. --> - <version>3.0.0.v201112011016</version> - <scope>compile</scope> - </dependency> - - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-servlet</artifactId> - <version>${jettyVersion}</version> - </dependency> - - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-server</artifactId> - <version>${jettyVersion}</version> - </dependency> - - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-simple</artifactId> - <version>${slf4jVersion}</version> - <scope>runtime</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>1.7.1</version> - <configuration> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <mainClass>com.google.gitiles.dev.Main</mainClass> - </transformer> - </transformers> - <createDependencyReducedPom>false</createDependencyReducedPom> - <filters> - <filter> - <artifact>*:*</artifact> - <excludes> - <exclude>META-INF/*.SF</exclude> - <exclude>META-INF/*.DSA</exclude> - <exclude>META-INF/*.RSA</exclude> - </excludes> - </filter> - </filters> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project>
diff --git a/gitiles-dev/src/main/java/com/google/gitiles/dev/DevServer.java b/gitiles-dev/src/main/java/com/google/gitiles/dev/DevServer.java index 273873d..c32cd8e 100644 --- a/gitiles-dev/src/main/java/com/google/gitiles/dev/DevServer.java +++ b/gitiles-dev/src/main/java/com/google/gitiles/dev/DevServer.java
@@ -110,9 +110,9 @@ throw badSourceRoot(targetUri); } String targetPath = targetUri.getPath(); - // targetPath is an arbitrary path under gitiles-dev/target in the standard - // Maven package layout. - int targetIndex = targetPath.lastIndexOf("gitiles-dev/target/"); + // targetPath is an arbitrary path under buck-out/ in our Buck package + // layout. + int targetIndex = targetPath.lastIndexOf("buck-out/"); if (targetIndex < 0) { throw badSourceRoot(targetUri); }