# Copyright (C) 2016 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. sh_bang_template = (" && ".join([ "echo '#!/usr/bin/env bash' > $@", "echo \"# this script should run from the root of your workspace.\" >> $@", "echo \"set -e\" >> $@", "echo \"\" >> $@", "echo 'if [[ \"$$VERBOSE\" ]]; then set -x ; fi' >> $@", "echo \"\" >> $@", "echo %s >> $@", "echo \"\" >> $@", "echo %s >> $@", ])) def maven_package( version, repository = None, url = None, jar = {}, src = {}, doc = {}, war = {}): build_cmd = ["bazel", "build"] mvn_cmd = ["python", "tools/maven/mvn.py", "-v", version] api_cmd = mvn_cmd[:] api_targets = [] for type, d in [("jar", jar), ("java-source", src), ("javadoc", doc)]: for a, t in sorted(d.items()): api_cmd.append("-s %s:%s:$(location %s)" % (a, type, t)) api_targets.append(t) native.genrule( name = "gen_api_install", cmd = sh_bang_template % ( " ".join(build_cmd + api_targets), " ".join(api_cmd + ["-a", "install"]), ), srcs = api_targets, outs = ["api_install.sh"], executable = True, testonly = True, ) if repository and url: native.genrule( name = "gen_api_deploy", cmd = sh_bang_template % ( " ".join(build_cmd + api_targets), " ".join(api_cmd + [ "-a", "deploy", "--repository", repository, "--url", url, ]), ), srcs = api_targets, outs = ["api_deploy.sh"], executable = True, testonly = True, ) war_cmd = mvn_cmd[:] war_targets = [] for a, t in sorted(war.items()): war_cmd.append("-s %s:war:$(location %s)" % (a, t)) war_targets.append(t) native.genrule( name = "gen_war_install", cmd = sh_bang_template % ( " ".join(build_cmd + war_targets), " ".join(war_cmd + ["-a", "install"]), ), srcs = war_targets, outs = ["war_install.sh"], executable = True, ) if repository and url: native.genrule( name = "gen_war_deploy", cmd = sh_bang_template % ( " ".join(build_cmd + war_targets), " ".join(war_cmd + [ "-a", "deploy", "--repository", repository, "--url", url, ]), ), srcs = war_targets, outs = ["war_deploy.sh"], executable = True, )