diff options
-rw-r--r-- | src/test/shell/bazel/BUILD | 1 | ||||
-rwxr-xr-x | src/test/shell/bazel/maven_skylark_test.sh | 20 | ||||
-rwxr-xr-x | src/test/shell/bazel/remote_helpers.sh | 8 | ||||
-rw-r--r-- | tools/build_defs/repo/maven_rules.bzl | 17 |
4 files changed, 36 insertions, 10 deletions
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD index 0e0e821410..7fedb81fc4 100644 --- a/src/test/shell/bazel/BUILD +++ b/src/test/shell/bazel/BUILD @@ -347,7 +347,6 @@ sh_test( srcs = ["maven_skylark_test.sh"], data = [ ":test-deps", - "//external:android_ndk_for_testing", "//external:android_sdk_for_testing", "@m2//:files", ], diff --git a/src/test/shell/bazel/maven_skylark_test.sh b/src/test/shell/bazel/maven_skylark_test.sh index 9e5544746c..227192b559 100755 --- a/src/test/shell/bazel/maven_skylark_test.sh +++ b/src/test/shell/bazel/maven_skylark_test.sh @@ -102,11 +102,11 @@ EOF expect_log "Tra-la!" } -function test_maven_jar_with_classifier_skylark() { +function DISABLEDtest_maven_jar_with_classifier_skylark() { setup_zoo version="1.21" - packaging = "jar" - classifier = "sources" + packaging="jar" + classifier="sources" serve_artifact com.example.carnivore carnivore $version $packaging $classifier setup_local_maven_settings_xml "http://localhost:$fileserver_port" @@ -150,8 +150,8 @@ EOF function test_maven_aar_skylark() { setup_android_sdk_support - if [ -z "$ANDROID_NDK_API_LEVEL" ] || [ -z "$ANDROID_SDK_API_LEVEL" ]; then - fail "This test cannot run without Android repositories set up," \ + if [[ ! -d "${TEST_SRCDIR}/androidsdk" ]]; then + fail "This test cannot run without android_sdk_repository set up," \ "see the WORKSPACE file for instructions" fi setup_android_binary @@ -164,6 +164,13 @@ maven_aar( artifact = "com.example.carnivore:herbivore:1.21", sha1 = "$sha1", settings = "//:$local_maven_settings_xml", + deps = ["@herbivore2//aar"], +) +maven_aar( + name = "herbivore2", + artifact = "com.example.carnivore:herbivore:1.21", + sha1 = "$sha1", + settings = "//:$local_maven_settings_xml", ) EOF bazel build //java/com/app || fail "Expected build to succeed" @@ -171,6 +178,9 @@ EOF expect_log_once "res/layout/my_view.xml" unzip -l bazel-bin/java/com/app/app_deploy.jar > $TEST_log expect_log_once "com/herbivore/Stegosaurus.class" + bazel query 'deps(//java/com/app)' >& $TEST_log + expect_log "@herbivore//aar:aar" + expect_log "@herbivore2//aar:aar" } # Same as test_maven_jar, except omit sha1 implying "we don't care". diff --git a/src/test/shell/bazel/remote_helpers.sh b/src/test/shell/bazel/remote_helpers.sh index 6a5a87736f..efdb5a392c 100755 --- a/src/test/shell/bazel/remote_helpers.sh +++ b/src/test/shell/bazel/remote_helpers.sh @@ -177,9 +177,13 @@ function create_artifact() { maven_path=$PWD/$(echo $group_id | sed 's/\./\//g')/$artifact_id/$version mkdir -p $maven_path openssl sha1 $artifact > $maven_path/$artifact_id-$version.$packaging.sha1 - openssl sha1 $srcjar_artifact > $maven_path/$artifact_id-$version-sources.$packaging.sha1 mv $artifact $maven_path/$artifact_id-$version.$packaging - mv $srcjar_artifact $maven_path/$artifact_id-$version-sources.$packaging + + # srcjar_artifact is not created for AARs. + if [ ! -z "${srcjar_artifact+x}" ]; then + openssl sha1 $srcjar_artifact > $maven_path/$artifact_id-$version-sources.$packaging.sha1 + mv $srcjar_artifact $maven_path/$artifact_id-$version-sources.$packaging + fi } function serve_artifact() { diff --git a/tools/build_defs/repo/maven_rules.bzl b/tools/build_defs/repo/maven_rules.bzl index 9a15166df2..a27431cf97 100644 --- a/tools/build_defs/repo/maven_rules.bzl +++ b/tools/build_defs/repo/maven_rules.bzl @@ -146,6 +146,9 @@ _maven_jar_build_file_template = """ java_import( name = 'jar', jars = ['{artifact_filename}'], + deps = [ +{deps_string} + ], visibility = ['//visibility:public'] ) @@ -161,6 +164,9 @@ _maven_aar_build_file_template = """ aar_import( name = 'aar', aar = '{artifact_filename}', + deps = [ +{deps_string} + ], visibility = ['//visibility:public'], ) @@ -172,8 +178,11 @@ filegroup( # Provides the syntax "@jar_name//jar" for dependencies def _generate_build_file(ctx, template, paths): + deps_string = "\n".join(["'%s'," % dep for dep in ctx.attr.deps]) contents = template.format( - rule_name = ctx.name, artifact_filename = paths.artifact_filename) + rule_name = ctx.name, + artifact_filename = paths.artifact_filename, + deps_string = deps_string) ctx.file('%s/BUILD' % paths.symlink_dir, contents, False) @@ -268,7 +277,11 @@ _common_maven_rule_attrs = { mandatory = True, ), "sha1": attr.string(default = ""), - "settings": attr.label(default = None) + "settings": attr.label(default = None), + # Allow the user to specify deps for the generated java_import or aar_import + # since maven_jar and maven_aar do not automatically pull in transitive + # dependencies. + "deps": attr.label_list(), } def _maven_jar_impl(ctx): |