Merge "Move Maven support to //tools/maven"
This commit is contained in:
commit
bece831d3c
@ -1,7 +1,7 @@
|
||||
[alias]
|
||||
api = //:api
|
||||
api_deploy = //:api_deploy
|
||||
api_install = //:api_install
|
||||
api_deploy = //tools/maven:deploy
|
||||
api_install = //tools/maven:install
|
||||
download = //:download
|
||||
download_sources = //:download_sources
|
||||
gerrit = //:gerrit
|
||||
|
19
BUCK
19
BUCK
@ -20,10 +20,12 @@ genrule(
|
||||
out = '__fake.api__',
|
||||
)
|
||||
|
||||
maven_install(name = 'api_install', deps = API_DEPS)
|
||||
maven_deploy(name = 'api_deploy', deps = API_DEPS)
|
||||
java_binary(
|
||||
name = 'extension-api',
|
||||
deps = [':extension-lib'],
|
||||
visibility = ['//tools/maven:'],
|
||||
)
|
||||
|
||||
java_binary(name = 'extension-api', deps = [':extension-lib'])
|
||||
java_library(
|
||||
name = 'extension-lib',
|
||||
deps = [
|
||||
@ -35,11 +37,13 @@ java_library(
|
||||
export_deps = True,
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = 'extension-api-src',
|
||||
cmd = 'ln -s $(location //gerrit-extension-api:api-src) $OUT',
|
||||
deps = ['//gerrit-extension-api:api-src'],
|
||||
out = 'extension-api-src.jar',
|
||||
visibility = ['//tools/maven:'],
|
||||
)
|
||||
|
||||
PLUGIN_API = [
|
||||
@ -48,18 +52,25 @@ PLUGIN_API = [
|
||||
'//gerrit-httpd:httpd',
|
||||
]
|
||||
|
||||
java_binary(name = 'plugin-api', deps = [':plugin-lib'])
|
||||
java_binary(
|
||||
name = 'plugin-api',
|
||||
deps = [':plugin-lib'],
|
||||
visibility = ['//tools/maven:'],
|
||||
)
|
||||
|
||||
java_library(
|
||||
name = 'plugin-lib',
|
||||
deps = PLUGIN_API,
|
||||
export_deps = True,
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
|
||||
java_binary(
|
||||
name = 'plugin-api-src',
|
||||
deps = [
|
||||
'//gerrit-extension-api:api-src',
|
||||
] + [d + '-src' for d in PLUGIN_API],
|
||||
visibility = ['//tools/maven:'],
|
||||
)
|
||||
|
||||
genrule(
|
||||
|
@ -17,13 +17,6 @@ python_binary(
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
|
||||
python_binary(
|
||||
name = 'maven_deploy',
|
||||
main = 'maven_deploy.py',
|
||||
deps = [':util'],
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
|
||||
python_library(
|
||||
name = 'util',
|
||||
srcs = ['util.py'],
|
||||
|
@ -11,7 +11,6 @@
|
||||
# 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.
|
||||
include_defs('//VERSION')
|
||||
|
||||
DOCS = ['//Documentation:html.zip']
|
||||
LIBS = [
|
||||
|
@ -1,60 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
SRC=$(ls gerrit-plugin-api/target/gerrit-plugin-api-*-sources.jar)
|
||||
VER=${SRC#gerrit-plugin-api/target/gerrit-plugin-api-}
|
||||
VER=${VER%-sources.jar}
|
||||
|
||||
type=release
|
||||
case $VER in
|
||||
*-SNAPSHOT)
|
||||
echo >&2 "fatal: Cannot deploy $VER"
|
||||
echo >&2 " Use ./tools/version.sh --release && mvn clean package"
|
||||
exit 1
|
||||
;;
|
||||
*-[0-9]*-g*) type=snapshot ;;
|
||||
esac
|
||||
URL=gs://gerrit-api/$type
|
||||
|
||||
|
||||
echo "Deploying $type gerrit-extension-api $VER"
|
||||
mvn deploy:deploy-file \
|
||||
-DgroupId=com.google.gerrit \
|
||||
-DartifactId=gerrit-extension-api \
|
||||
-Dversion=$VER \
|
||||
-Dpackaging=jar \
|
||||
-Dfile=gerrit-extension-api/target/gerrit-extension-api-$VER-all.jar \
|
||||
-DrepositoryId=gerrit-api-repository \
|
||||
-Durl=$URL
|
||||
|
||||
mvn deploy:deploy-file \
|
||||
-DgroupId=com.google.gerrit \
|
||||
-DartifactId=gerrit-extension-api \
|
||||
-Dversion=$VER \
|
||||
-Dpackaging=java-source \
|
||||
-Dfile=gerrit-extension-api/target/gerrit-extension-api-$VER-all-sources.jar \
|
||||
-Djava-source=false \
|
||||
-DrepositoryId=gerrit-api-repository \
|
||||
-Durl=$URL
|
||||
|
||||
|
||||
echo "Deploying $type gerrit-plugin-api $VER"
|
||||
mvn deploy:deploy-file \
|
||||
-DgroupId=com.google.gerrit \
|
||||
-DartifactId=gerrit-plugin-api \
|
||||
-Dversion=$VER \
|
||||
-Dpackaging=jar \
|
||||
-Dfile=gerrit-plugin-api/target/gerrit-plugin-api-$VER.jar \
|
||||
-DrepositoryId=gerrit-api-repository \
|
||||
-Durl=$URL
|
||||
|
||||
mvn deploy:deploy-file \
|
||||
-DgroupId=com.google.gerrit \
|
||||
-DartifactId=gerrit-plugin-api \
|
||||
-Dversion=$VER \
|
||||
-Dpackaging=java-source \
|
||||
-Dfile=gerrit-plugin-api/target/gerrit-plugin-api-$VER-sources.jar \
|
||||
-Djava-source=false \
|
||||
-DrepositoryId=gerrit-api-repository \
|
||||
-Durl=$URL
|
24
tools/maven/BUCK
Normal file
24
tools/maven/BUCK
Normal file
@ -0,0 +1,24 @@
|
||||
include_defs('//VERSION')
|
||||
include_defs('//tools/maven/package.defs')
|
||||
|
||||
TYPE = 'snapshot' if GERRIT_VERSION.endswith('-SNAPSHOT') else 'release'
|
||||
|
||||
maven_package(
|
||||
repository = 'gerrit-api-repository',
|
||||
url = 's3://gerrit-api@commondatastorage.googleapis.com/%s' % TYPE,
|
||||
version = GERRIT_VERSION,
|
||||
jar = {
|
||||
'gerrit-extension-api': '//:extension-api',
|
||||
'gerrit-plugin-api': '//:plugin-api',
|
||||
},
|
||||
src = {
|
||||
'gerrit-extension-api': '//:extension-api-src',
|
||||
'gerrit-plugin-api': '//:plugin-api-src',
|
||||
},
|
||||
)
|
||||
|
||||
python_binary(
|
||||
name = 'mvn',
|
||||
main = 'mvn.py',
|
||||
deps = ['//tools:util'],
|
||||
)
|
61
tools/maven/mvn.py
Normal file
61
tools/maven/mvn.py
Normal file
@ -0,0 +1,61 @@
|
||||
#!/usr/bin/python
|
||||
# Copyright (C) 2013 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.
|
||||
|
||||
from __future__ import print_function
|
||||
from optparse import OptionParser
|
||||
from sys import stderr
|
||||
from util import check_output
|
||||
|
||||
opts = OptionParser()
|
||||
opts.add_option('--repository', help='maven repository id')
|
||||
opts.add_option('--url', help='maven repository url')
|
||||
opts.add_option('-a', help='action (valid actions are: install,deploy)')
|
||||
opts.add_option('-v', help='gerrit version')
|
||||
opts.add_option('-s', action='append', help='triplet of artifactId:type:path')
|
||||
|
||||
args, ctx = opts.parse_args()
|
||||
if not args.v:
|
||||
print('version is empty', file=stderr)
|
||||
exit(1)
|
||||
|
||||
common = [
|
||||
'-DgroupId=com.google.gerrit',
|
||||
'-Dversion=%s' % args.v,
|
||||
]
|
||||
|
||||
if 'install' == args.a:
|
||||
cmd = ['mvn', 'install:install-file'] + common
|
||||
elif 'deploy' == args.a:
|
||||
cmd = [
|
||||
'mvn',
|
||||
'deploy:deploy-file',
|
||||
'-DrepositoryId=%s' % args.repository,
|
||||
'-Durl=%s' % args.url,
|
||||
] + common
|
||||
else:
|
||||
print("unknown action -a %s" % args.a, file=stderr)
|
||||
exit(1)
|
||||
|
||||
for spec in args.s:
|
||||
artifact, type, src = spec.split(':')
|
||||
try:
|
||||
check_output(cmd + [
|
||||
'-DartifactId=%s' % artifact,
|
||||
'-Dpackaging=%s' % type,
|
||||
'-Dfile=%s' % src,
|
||||
])
|
||||
except Exception as e:
|
||||
print('%s command failed: %s' % (action, e), file=stderr)
|
||||
exit(1)
|
45
tools/maven/package.defs
Normal file
45
tools/maven/package.defs
Normal file
@ -0,0 +1,45 @@
|
||||
# Copyright (C) 2013 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.
|
||||
|
||||
def maven_package(
|
||||
version,
|
||||
repository = None,
|
||||
url = None,
|
||||
jar = {},
|
||||
src = {}):
|
||||
cmd = ['$(exe //tools/maven:mvn)', '-v', version]
|
||||
dep = []
|
||||
|
||||
for type,d in [('jar', jar), ('java-source', src)]:
|
||||
for a,t in d.iteritems():
|
||||
cmd.append('-s %s:%s:$(location %s)' % (a,type,t))
|
||||
dep.append(t)
|
||||
|
||||
genrule(
|
||||
name = 'install',
|
||||
cmd = ' '.join(cmd + ['-a', 'install']),
|
||||
deps = dep + ['//tools/maven:mvn'],
|
||||
out = '__fake.install__',
|
||||
)
|
||||
|
||||
if repository and url:
|
||||
genrule(
|
||||
name = 'deploy',
|
||||
cmd = ' '.join(cmd + [
|
||||
'-a', 'deploy',
|
||||
'--repository', repository,
|
||||
'--url', url]),
|
||||
deps = dep + ['//tools/maven:mvn'],
|
||||
out = '__fake.deploy__',
|
||||
)
|
@ -1,92 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# Copyright (C) 2013 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.
|
||||
|
||||
from __future__ import print_function
|
||||
from optparse import OptionParser
|
||||
from os.path import exists
|
||||
from sys import stderr
|
||||
from util import check_output
|
||||
|
||||
opts = OptionParser()
|
||||
opts.add_option('-a', help='action (valid actions are: install,deploy)')
|
||||
opts.add_option('-v', help='gerrit version')
|
||||
opts.add_option('-d', help='dependencies (jars artifacts)')
|
||||
|
||||
args, ctx = opts.parse_args()
|
||||
action = args.a
|
||||
if action not in ['deploy', 'install']:
|
||||
print("unknown action : %s" % action, file=stderr)
|
||||
exit(1)
|
||||
|
||||
deps = args.d.split()
|
||||
if not deps:
|
||||
print('dependencies are empty')
|
||||
exit(1)
|
||||
|
||||
extension_jar = [x for x in deps if "extension-api.jar" in x][0]
|
||||
extension_src = [x for x in deps if "extension-api-src.jar" in x][0]
|
||||
plugin_jar = [x for x in deps if "plugin-api.jar" in x][0]
|
||||
plugin_src = [x for x in deps if "plugin-api-src.jar" in x][0]
|
||||
|
||||
version = args.v
|
||||
if not version:
|
||||
print('version is empty')
|
||||
exit(1)
|
||||
|
||||
REPO_TYPE = 'snapshot' if version.endswith("SNAPSHOT") else 'release'
|
||||
URL = 's3://gerrit-api@commondatastorage.googleapis.com/%s' % REPO_TYPE
|
||||
|
||||
plugin = ['-DartifactId=gerrit-plugin-api']
|
||||
extension = ['-DartifactId=gerrit-extension-api']
|
||||
common = [
|
||||
'-DgroupId=com.google.gerrit',
|
||||
'-Dversion=%s' % version,
|
||||
]
|
||||
jar = ['-Dpackaging=jar']
|
||||
src = ['-Dpackaging=java-source']
|
||||
|
||||
cmd = {
|
||||
'deploy': ['mvn',
|
||||
'deploy:deploy-file',
|
||||
'-DrepositoryId=gerrit-api-repository',
|
||||
'-Durl=%s' % URL],
|
||||
'install': ['mvn',
|
||||
'install:install-file'],
|
||||
}
|
||||
|
||||
try:
|
||||
check_output(cmd[action] +
|
||||
plugin +
|
||||
common +
|
||||
jar +
|
||||
['-Dfile=%s' % plugin_jar])
|
||||
check_output(cmd[action] +
|
||||
plugin +
|
||||
common +
|
||||
src +
|
||||
['-Dfile=%s' % plugin_src])
|
||||
check_output(cmd[action] +
|
||||
extension +
|
||||
common +
|
||||
jar +
|
||||
['-Dfile=%s' % extension_jar])
|
||||
check_output(cmd[action] +
|
||||
extension +
|
||||
common +
|
||||
src +
|
||||
['-Dfile=%s' % extension_src])
|
||||
except Exception as e:
|
||||
print('%s command failed: %s' % (action, e), file=stderr)
|
||||
exit(1)
|
Loading…
Reference in New Issue
Block a user