소스 검색

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,
)

Loading…
취소
저장