ソースを参照

Implement initial framework of Bazel build

The initial implementation only builds the packages consumed by
Gerrit Code Review.

Test build and execution is not implemented.

We prefer to consume maven_jar custom rule from bazlets repository,
for the same reasons as in the Gerrit project:

* Caching artifacts across different clones and projects
* Exposing source classifiers and neverlink artifact

TEST PLAN:

  $ bazel build :all
  $ unzip -t bazel-genfiles/all.zip
  Archive: bazel-genfiles/all.zip
    testing: libjgit-archive.jar      OK
    testing: libjgit-servlet.jar      OK
    testing: libjgit.jar              OK
    testing: libjunit.jar             OK
  No errors detected in compressed data of bazel-genfiles/all.zip.

Change-Id: Ia837ce95d9829fe2515f37b7a04a71a4598672a0
Signed-off-by: David Ostrovsky <david@ostrovsky.org>
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
tags/v4.7.0.201704051617-r
David Ostrovsky 7年前
コミット
e92a0c3adc
9個のファイルの変更207行の追加0行の削除
  1. 6
    0
      .gitignore
  2. 19
    0
      BUILD
  3. 97
    0
      WORKSPACE
  4. 15
    0
      org.eclipse.jgit.archive/BUILD
  5. 12
    0
      org.eclipse.jgit.http.server/BUILD
  6. 12
    0
      org.eclipse.jgit.junit/BUILD
  7. 29
    0
      org.eclipse.jgit/BUILD
  8. 0
    0
      tools/BUILD
  9. 17
    0
      tools/bazlets.bzl

+ 6
- 0
.gitignore ファイルの表示

@@ -4,3 +4,9 @@
/buck-out
/target
infer-out
bazel-bin
bazel-genfiles
bazel-jgit
bazel-out
bazel-testlogs
*~

+ 19
- 0
BUILD ファイルの表示

@@ -0,0 +1,19 @@
package(default_visibility = ['//visibility:public'])

genrule(
name = 'all',
srcs = [
'//org.eclipse.jgit:jgit',
'//org.eclipse.jgit.archive:jgit-archive',
'//org.eclipse.jgit.http.server:jgit-servlet',
'//org.eclipse.jgit.junit:junit',
],
cmd = ' && '.join([
'p=$$PWD',
't=$$(mktemp -d || mktemp -d -t bazel-tmp)',
'cp $(SRCS) $$t',
'cd $$t',
'zip -qr $$p/$@ .',
]),
outs = ['all.zip'],
)

+ 97
- 0
WORKSPACE ファイルの表示

@@ -0,0 +1,97 @@
workspace(name="jgit")

load("//tools:bazlets.bzl", "load_bazlets")
load_bazlets(commit = "3afbeab55ece585dbfc7a980bf7214b24ddbbe86")
load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl",
"maven_jar"
)

maven_jar(
name = 'jsch',
artifact = 'com.jcraft:jsch:0.1.53',
sha1 = '658b682d5c817b27ae795637dfec047c63d29935',
)

maven_jar(
name = 'javaewah',
artifact = 'com.googlecode.javaewah:JavaEWAH:1.1.6',
sha1 = '94ad16d728b374d65bd897625f3fbb3da223a2b6',
)

maven_jar(
name = 'httpclient',
artifact = 'org.apache.httpcomponents:httpclient:4.3.6',
sha1 = '4c47155e3e6c9a41a28db36680b828ced53b8af4',
)

maven_jar(
name = 'httpcore',
artifact = 'org.apache.httpcomponents:httpcore:4.3.3',
sha1 = 'f91b7a4aadc5cf486df6e4634748d7dd7a73f06d',
)

maven_jar(
name = 'commons_logging',
artifact = 'commons-logging:commons-logging:1.1.3',
sha1 = 'f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f',
)

maven_jar(
name = 'log_api',
artifact = 'org.slf4j:slf4j-api:1.7.2',
sha1 = '0081d61b7f33ebeab314e07de0cc596f8e858d97',
)

maven_jar(
name = 'slf4j_simple',
artifact = 'org.slf4j:slf4j-simple:1.7.2',
sha1 = '760055906d7353ba4f7ce1b8908bc6b2e91f39fa',
)

maven_jar(
name = 'servlet_api_3_1',
artifact = 'javax.servlet:javax.servlet-api:3.1.0',
sha1 = '3cd63d075497751784b2fa84be59432f4905bf7c',
)

maven_jar(
name = 'commons_compress',
artifact = 'org.apache.commons:commons-compress:1.6',
sha1 = 'c7d9b580aff9e9f1998361f16578e63e5c064699',
)

maven_jar(
name = 'tukaani_xz',
artifact = 'org.tukaani:xz:1.3',
sha1 = '66db21c8484120cb6a51b5b3ea47b6f383942bec',
)

maven_jar(
name = 'args4j',
artifact = 'args4j:args4j:2.0.15',
sha1 = '139441471327b9cc6d56436cb2a31e60eb6ed2ba',
)

maven_jar(
name = 'junit',
artifact = 'junit:junit:4.11',
sha1 = '4e031bb61df09069aeb2bffb4019e7a5034a4ee0',
)

maven_jar(
name = 'hamcrest_library',
artifact = 'org.hamcrest:hamcrest-library:1.3',
sha1 = '4785a3c21320980282f9f33d0d1264a69040538f',
)

maven_jar(
name = 'hamcrest_core',
artifact = 'org.hamcrest:hamcrest-core:1.3',
sha1 = '42a25dc3219429f0e5d060061f71acb49bf010a0',
)

maven_jar(
name = 'gson',
artifact = 'com.google.code.gson:gson:2.2.4',
sha1 = 'a60a5e993c98c864010053cb901b7eab25306568',
)

+ 15
- 0
org.eclipse.jgit.archive/BUILD ファイルの表示

@@ -0,0 +1,15 @@
package(default_visibility = ['//visibility:public'])

java_library(
name = 'jgit-archive',
srcs = glob(
['src/**'],
exclude = ['src/org/eclipse/jgit/archive/FormatActivator.java'],
),
resources = glob(['resources/**']),
resource_strip_prefix = 'org.eclipse.jgit.archive/resources',
deps = [ # We want these deps to be provided_deps
'//org.eclipse.jgit:jgit',
'@commons_compress//jar',
],
)

+ 12
- 0
org.eclipse.jgit.http.server/BUILD ファイルの表示

@@ -0,0 +1,12 @@
package(default_visibility = ['//visibility:public'])

java_library(
name = 'jgit-servlet',
srcs = glob(['src/**']),
resources = glob(['resources/**']),
resource_strip_prefix = 'org.eclipse.jgit.http.server/resources',
deps = [ # We want these deps to be provided_deps
'//org.eclipse.jgit:jgit',
'@servlet_api_3_1//jar',
],
)

+ 12
- 0
org.eclipse.jgit.junit/BUILD ファイルの表示

@@ -0,0 +1,12 @@
package(default_visibility = ['//visibility:public'])

java_library(
name = 'junit',
srcs = glob(['src/**']),
resources = glob(['resources/**']),
resource_strip_prefix = 'org.eclipse.jgit.junit/resources',
deps = [ # We want these deps to be provided_deps
'//org.eclipse.jgit:jgit',
'@junit//jar',
],
)

+ 29
- 0
org.eclipse.jgit/BUILD ファイルの表示

@@ -0,0 +1,29 @@
package(default_visibility = ['//visibility:public'])

INSECURE_CIPHER_FACTORY = [
'src/org/eclipse/jgit/transport/InsecureCipherFactory.java',
]

SRCS = glob(['src/**'], exclude=INSECURE_CIPHER_FACTORY)
RESOURCES = glob(['resources/**'])

java_library(
name = 'jgit',
srcs = SRCS,
resources = RESOURCES,
resource_strip_prefix = 'org.eclipse.jgit/resources',
deps = [
':insecure_cipher_factory',
'@javaewah//jar',
'@jsch//jar',
'@httpclient//jar',
'@servlet_api_3_1//jar',
'@log_api//jar',
],
)

java_library(
name = 'insecure_cipher_factory',
srcs = INSECURE_CIPHER_FACTORY,
javacopts = ['-Xep:InsecureCipherMode:OFF'],
)

+ 0
- 0
tools/BUILD ファイルの表示


+ 17
- 0
tools/bazlets.bzl ファイルの表示

@@ -0,0 +1,17 @@
NAME = "com_googlesource_gerrit_bazlets"

def load_bazlets(
commit,
local_path = None
):
if not local_path:
native.git_repository(
name = NAME,
remote = "https://gerrit.googlesource.com/bazlets",
commit = commit,
)
else:
native.local_repository(
name = NAME,
path = local_path,
)

読み込み中…
キャンセル
保存