google-nomulus/java/google/registry/BUILD
jart 734130aa73 Restructure Maven dependencies in build
We're now using java_import_external instead of maven_jar. This allows
us to specify the relationships between jars, thereby allowing us to
eliminate scores of vendor BUILD files that did nothing but re-export
@foo//jar targets, thus addressing the concerns of djhworld on Hacker
News: https://news.ycombinator.com/item?id=12738072

We now have redundant failover mirrors, which is a feature I added to
Bazel 0.4.2 in ed7ced0018

A new standard naming convention is now being used for all Maven repos.
Those names are calculated from the group_artifact name using the
following algorithm that eliminates redundancy:
https://gist.github.com/jart/41bfd977b913c2301627162f1c038e55

The JSR330 dep has been removed from java targets if they also depend
on Dagger, since Dagger always exports JSR330.

Annotation processor dependencies should now be leaner and meaner, by
more appropriately managing what needs to be on the classpath at
runtime. This should trim down the production jar by >1MB. As it stands
currently in the open source world:

- backend_jar_deploy.jar: 50MB
- frontend_jar_deploy.jar: 30MB
- tools_jar_deploy.jar: 45MB

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=143487929
2017-01-09 11:59:04 -05:00

292 lines
9.3 KiB
Text

package(
default_visibility = ["//java/google/registry:registry_project"],
)
licenses(["notice"]) # Apache 2.0
load("//java/google/registry/builddefs:zip_file.bzl", "zip_file")
load("//java/google/registry/builddefs:registry_ear_file.bzl", "registry_ear_file")
package_group(
name = "registry_project",
packages = [
"//java/google/registry/...",
"//javatests/google/registry/...",
"//python/...",
],
)
zip_file(
name = "common_war",
srcs = [
"@com_google_appengine_api_1_0_sdk",
],
out = "mandatory_stuff.war",
mappings = {
"com_google_appengine_api_1_0_sdk": "WEB-INF/lib",
},
visibility = ["//visibility:private"],
)
################################################################################
# DOMAIN REGISTRY :: PRODUCTION ENVIRONMENT
registry_ear_file(
name = "registry_ear",
out = "registry.ear",
configs = {
"env/common/META-INF/appengine-application.xml": "META-INF/appengine-application.xml",
"env/common/META-INF/application.xml": "META-INF/application.xml",
},
wars = {
"registry_default.war": "default",
"registry_backend.war": "backend",
"registry_tools.war": "tools",
},
)
zip_file(
name = "registry_default_war",
srcs = [
"env/common/default/WEB-INF/datastore-indexes.xml",
"env/common/default/WEB-INF/dos.xml",
"env/common/default/WEB-INF/logging.properties",
"env/common/default/WEB-INF/queue.xml",
"env/common/default/WEB-INF/web.xml",
"env/production/default/WEB-INF/appengine-web.xml",
"env/production/default/WEB-INF/cron.xml",
"//java/google/registry/module/frontend:frontend_jar_deploy.jar",
],
out = "registry_default.war",
mappings = {
"domain_registry/java/google/registry/env/common/default": "",
"domain_registry/java/google/registry/env/production/default": "",
"domain_registry/java/google/registry/module/frontend": "WEB-INF/lib",
},
deps = [
":common_war",
"//java/google/registry/ui:war_debug",
],
)
zip_file(
name = "registry_backend_war",
srcs = [
"env/common/backend/WEB-INF/logging.properties",
"env/common/backend/WEB-INF/web.xml",
"env/production/backend/WEB-INF/appengine-web.xml",
"//java/google/registry/module/backend:backend_jar_deploy.jar",
],
out = "registry_backend.war",
mappings = {
"domain_registry/java/google/registry/env/common/backend": "",
"domain_registry/java/google/registry/env/production/backend": "",
"domain_registry/java/google/registry/module/backend": "WEB-INF/lib",
},
deps = [
":common_war",
"//java/google/registry/ui:war",
],
)
zip_file(
name = "registry_tools_war",
srcs = [
"env/common/tools/WEB-INF/logging.properties",
"env/common/tools/WEB-INF/web.xml",
"env/production/tools/WEB-INF/appengine-web.xml",
"//java/google/registry/module/tools:tools_jar_deploy.jar",
],
out = "registry_tools.war",
mappings = {
"domain_registry/java/google/registry/env/common/tools": "",
"domain_registry/java/google/registry/env/production/tools": "",
"domain_registry/java/google/registry/module/tools": "WEB-INF/lib",
},
deps = [
":common_war",
"//java/google/registry/ui:war",
],
)
################################################################################
# DOMAIN REGISTRY :: SANDBOX ENVIRONMENT
#
# Sandbox is a production environment that registrar customers use to conduct
# integration tests against the registry service.
registry_ear_file(
name = "registry_sandbox_ear",
out = "registry_sandbox.ear",
configs = {
"env/common/META-INF/appengine-application.xml": "META-INF/appengine-application.xml",
"env/common/META-INF/application.xml": "META-INF/application.xml",
},
wars = {
"registry_default_sandbox.war": "default",
"registry_backend_sandbox.war": "backend",
"registry_tools_sandbox.war": "tools",
},
)
zip_file(
name = "registry_default_sandbox_war",
srcs = [
"env/sandbox/default/WEB-INF/appengine-web.xml",
"env/sandbox/default/WEB-INF/cron.xml",
],
out = "registry_default_sandbox.war",
mappings = {"domain_registry/java/google/registry/env/sandbox/default": ""},
deps = [":registry_default_war"],
)
zip_file(
name = "registry_backend_sandbox_war",
srcs = ["env/sandbox/backend/WEB-INF/appengine-web.xml"],
out = "registry_backend_sandbox.war",
mappings = {"domain_registry/java/google/registry/env/sandbox/backend": ""},
deps = [":registry_backend_war"],
)
zip_file(
name = "registry_tools_sandbox_war",
srcs = ["env/sandbox/tools/WEB-INF/appengine-web.xml"],
out = "registry_tools_sandbox.war",
mappings = {"domain_registry/java/google/registry/env/sandbox/tools": ""},
deps = [":registry_tools_war"],
)
################################################################################
# DOMAIN REGISTRY :: ALPHA ENVIRONMENT
#
# The alpha environment is used by developers to test new features.
registry_ear_file(
name = "registry_alpha_ear",
out = "registry_alpha.ear",
configs = {
"env/common/META-INF/appengine-application.xml": "META-INF/appengine-application.xml",
"env/common/META-INF/application.xml": "META-INF/application.xml",
},
wars = {
"registry_default_alpha.war": "default",
"registry_backend_alpha.war": "backend",
"registry_tools_alpha.war": "tools",
},
)
zip_file(
name = "registry_default_alpha_war",
srcs = [
"env/alpha/default/WEB-INF/appengine-web.xml",
"env/alpha/default/WEB-INF/cron.xml",
],
out = "registry_default_alpha.war",
mappings = {"domain_registry/java/google/registry/env/alpha/default": ""},
deps = [":registry_default_war"],
)
zip_file(
name = "registry_backend_alpha_war",
srcs = ["env/alpha/backend/WEB-INF/appengine-web.xml"],
out = "registry_backend_alpha.war",
mappings = {"domain_registry/java/google/registry/env/alpha/backend": ""},
deps = [":registry_backend_war"],
)
zip_file(
name = "registry_tools_alpha_war",
srcs = ["env/alpha/tools/WEB-INF/appengine-web.xml"],
out = "registry_tools_alpha.war",
mappings = {"domain_registry/java/google/registry/env/alpha/tools": ""},
deps = [":registry_tools_war"],
)
################################################################################
# DOMAIN REGISTRY :: CRASH ENVIRONMENT
#
# The crash environment is used for testing loads, backups, and restores.
registry_ear_file(
name = "registry_crash_ear",
out = "registry_crash.ear",
configs = {
"env/common/META-INF/appengine-application.xml": "META-INF/appengine-application.xml",
"env/common/META-INF/application.xml": "META-INF/application.xml",
},
wars = {
"registry_default_crash.war": "default",
"registry_backend_crash.war": "backend",
"registry_tools_crash.war": "tools",
},
)
zip_file(
name = "registry_default_crash_war",
srcs = [
"env/crash/default/WEB-INF/appengine-web.xml",
"env/crash/default/WEB-INF/cron.xml",
],
out = "registry_default_crash.war",
mappings = {"domain_registry/java/google/registry/env/crash/default": ""},
deps = [":registry_default_war"],
)
zip_file(
name = "registry_backend_crash_war",
srcs = ["env/crash/backend/WEB-INF/appengine-web.xml"],
out = "registry_backend_crash.war",
mappings = {"domain_registry/java/google/registry/env/crash/backend": ""},
deps = [":registry_backend_war"],
)
zip_file(
name = "registry_tools_crash_war",
srcs = ["env/crash/tools/WEB-INF/appengine-web.xml"],
out = "registry_tools_crash.war",
mappings = {"domain_registry/java/google/registry/env/crash/tools": ""},
deps = [":registry_tools_war"],
)
################################################################################
# DOMAIN REGISTRY :: LOCAL ENVIRONMENT
#
# The local environment only runs locally for testing and is never deployed.
registry_ear_file(
name = "registry_local_ear",
out = "registry_local.ear",
configs = {
"env/common/META-INF/appengine-application.xml": "META-INF/appengine-application.xml",
"env/common/META-INF/application.xml": "META-INF/application.xml",
},
wars = {
"registry_default_local.war": "default",
"registry_backend_local.war": "backend",
"registry_tools_local.war": "tools",
},
)
zip_file(
name = "registry_default_local_war",
srcs = ["env/local/default/WEB-INF/appengine-web.xml"],
out = "registry_default_local.war",
mappings = {"domain_registry/java/google/registry/env/local/default": ""},
deps = [":registry_default_war"],
)
zip_file(
name = "registry_backend_local_war",
srcs = ["env/local/backend/WEB-INF/appengine-web.xml"],
out = "registry_backend_local.war",
mappings = {"domain_registry/java/google/registry/env/local/backend": ""},
deps = [":registry_backend_war"],
)
zip_file(
name = "registry_tools_local_war",
srcs = ["env/local/tools/WEB-INF/appengine-web.xml"],
out = "registry_tools_local.war",
mappings = {"domain_registry/java/google/registry/env/local/tools": ""},
deps = [":registry_tools_war"],
)