Bazel: Generate eclipse project
servlet_api_2_5 can be exculded from the generated .classpath to avoid
classpath collisions between Servlet API 2.5 and Servlet API 3.0. To do
that, pass -x parameter to project.py invocation in project.sh:
... -n gitiles -r . -x servlet_api_2_5
TEST PLAN:
$ tools/eclipse/project.sh
Open the project in Eclipse IDE and verify that it can be compiled and
the tests can be run.
Change-Id: If318321fb1a94888a9adea635458afee2b463682
diff --git a/WORKSPACE b/WORKSPACE
index d55fd5c..24eb0f0 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1,6 +1,9 @@
workspace(name = "gitiles")
load("//tools:bazlets.bzl", "load_bazlets")
-load_bazlets(commit = "3afbeab55ece585dbfc7a980bf7214b24ddbbe86")
+load_bazlets(
+ commit = "e10ae3f85781aa15054be802b2a9f9465b1bf1e0",
+# local_path = "/home/<user>/projects/bazlets"
+)
load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl",
"maven_jar",
"GERRIT")
diff --git a/gitiles-dev/BUILD b/gitiles-dev/BUILD
index 3a062c7..bbb6de2 100644
--- a/gitiles-dev/BUILD
+++ b/gitiles-dev/BUILD
@@ -13,6 +13,7 @@
"//lib/slf4j:slf4j-simple",
"//lib/soy",
],
+ visibility = ["//visibility:public"],
)
java_binary(
diff --git a/gitiles-servlet/BUILD b/gitiles-servlet/BUILD
index 803f62e..d3a7ff3 100644
--- a/gitiles-servlet/BUILD
+++ b/gitiles-servlet/BUILD
@@ -56,14 +56,13 @@
load("@com_googlesource_gerrit_bazlets//tools:junit.bzl", "junit_tests")
junit_tests(
- name = "ServletTests",
+ name = "servlet_tests",
srcs = glob(
[
"src/test/java/**/*Test.java",
],
exclude = ["**/ServletTest.java"],
),
- visibility = ["//visibility:public"],
runtime_deps = ["//lib/junit:hamcrest-core"],
deps = DEPS + [
":servlet",
@@ -73,6 +72,7 @@
"//lib/jgit:junit",
"//lib/junit",
],
+ visibility = ["//visibility:public"],
)
load("@com_googlesource_gerrit_bazlets//tools:javadoc.bzl", "java_doc")
diff --git a/tools/eclipse/BUILD b/tools/eclipse/BUILD
new file mode 100644
index 0000000..45ad493
--- /dev/null
+++ b/tools/eclipse/BUILD
@@ -0,0 +1,31 @@
+load("@com_googlesource_gerrit_bazlets//tools:classpath.bzl", "classpath_collector")
+load("@com_googlesource_gerrit_bazlets//tools:py_binary_path.bzl", "py_binary_path")
+
+DEPS = [
+ "//gitiles-servlet:servlet",
+ "//gitiles-dev:lib",
+]
+
+java_library(
+ name = "classpath",
+ runtime_deps = DEPS,
+)
+
+classpath_collector(
+ name = "main_classpath_collect",
+ testonly = 1,
+ deps = DEPS + [
+ "//gitiles-servlet:servlet_tests",
+ ],
+)
+
+# TODO(davido): This is a hack:
+# https://github.com/bazelbuild/bazel/issues/2452
+# We know the py_binary rule, but for *reasons* we cannot
+# use `buck run <rule>. Unfortunately, a query to retrieve
+# the path was removed in Bazel. So we are forced to do this
+# hack to access python script outside of the Bazel.
+py_binary_path(
+ name = "project.py",
+ py_binary_label = "@com_googlesource_gerrit_bazlets//tools/eclipse:project",
+)
diff --git a/tools/eclipse/project.sh b/tools/eclipse/project.sh
new file mode 100755
index 0000000..e11daa0
--- /dev/null
+++ b/tools/eclipse/project.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+# Copyright (C) 2017 The Android Open Source Project
+#
+# 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.
+
+bazel build tools/eclipse:project.py
+`bazel info output_base`/`cat bazel-bin/tools/eclipse/project.py.txt` -n gitiles -r .