Merge "Move Maven support to //tools/maven"
This commit is contained in:
commit
bece831d3c
@ -1,7 +1,7 @@
|
|||||||
[alias]
|
[alias]
|
||||||
api = //:api
|
api = //:api
|
||||||
api_deploy = //:api_deploy
|
api_deploy = //tools/maven:deploy
|
||||||
api_install = //:api_install
|
api_install = //tools/maven:install
|
||||||
download = //:download
|
download = //:download
|
||||||
download_sources = //:download_sources
|
download_sources = //:download_sources
|
||||||
gerrit = //:gerrit
|
gerrit = //:gerrit
|
||||||
|
19
BUCK
19
BUCK
@ -20,10 +20,12 @@ genrule(
|
|||||||
out = '__fake.api__',
|
out = '__fake.api__',
|
||||||
)
|
)
|
||||||
|
|
||||||
maven_install(name = 'api_install', deps = API_DEPS)
|
java_binary(
|
||||||
maven_deploy(name = 'api_deploy', deps = API_DEPS)
|
name = 'extension-api',
|
||||||
|
deps = [':extension-lib'],
|
||||||
|
visibility = ['//tools/maven:'],
|
||||||
|
)
|
||||||
|
|
||||||
java_binary(name = 'extension-api', deps = [':extension-lib'])
|
|
||||||
java_library(
|
java_library(
|
||||||
name = 'extension-lib',
|
name = 'extension-lib',
|
||||||
deps = [
|
deps = [
|
||||||
@ -35,11 +37,13 @@ java_library(
|
|||||||
export_deps = True,
|
export_deps = True,
|
||||||
visibility = ['PUBLIC'],
|
visibility = ['PUBLIC'],
|
||||||
)
|
)
|
||||||
|
|
||||||
genrule(
|
genrule(
|
||||||
name = 'extension-api-src',
|
name = 'extension-api-src',
|
||||||
cmd = 'ln -s $(location //gerrit-extension-api:api-src) $OUT',
|
cmd = 'ln -s $(location //gerrit-extension-api:api-src) $OUT',
|
||||||
deps = ['//gerrit-extension-api:api-src'],
|
deps = ['//gerrit-extension-api:api-src'],
|
||||||
out = 'extension-api-src.jar',
|
out = 'extension-api-src.jar',
|
||||||
|
visibility = ['//tools/maven:'],
|
||||||
)
|
)
|
||||||
|
|
||||||
PLUGIN_API = [
|
PLUGIN_API = [
|
||||||
@ -48,18 +52,25 @@ PLUGIN_API = [
|
|||||||
'//gerrit-httpd:httpd',
|
'//gerrit-httpd:httpd',
|
||||||
]
|
]
|
||||||
|
|
||||||
java_binary(name = 'plugin-api', deps = [':plugin-lib'])
|
java_binary(
|
||||||
|
name = 'plugin-api',
|
||||||
|
deps = [':plugin-lib'],
|
||||||
|
visibility = ['//tools/maven:'],
|
||||||
|
)
|
||||||
|
|
||||||
java_library(
|
java_library(
|
||||||
name = 'plugin-lib',
|
name = 'plugin-lib',
|
||||||
deps = PLUGIN_API,
|
deps = PLUGIN_API,
|
||||||
export_deps = True,
|
export_deps = True,
|
||||||
visibility = ['PUBLIC'],
|
visibility = ['PUBLIC'],
|
||||||
)
|
)
|
||||||
|
|
||||||
java_binary(
|
java_binary(
|
||||||
name = 'plugin-api-src',
|
name = 'plugin-api-src',
|
||||||
deps = [
|
deps = [
|
||||||
'//gerrit-extension-api:api-src',
|
'//gerrit-extension-api:api-src',
|
||||||
] + [d + '-src' for d in PLUGIN_API],
|
] + [d + '-src' for d in PLUGIN_API],
|
||||||
|
visibility = ['//tools/maven:'],
|
||||||
)
|
)
|
||||||
|
|
||||||
genrule(
|
genrule(
|
||||||
|
@ -17,13 +17,6 @@ python_binary(
|
|||||||
visibility = ['PUBLIC'],
|
visibility = ['PUBLIC'],
|
||||||
)
|
)
|
||||||
|
|
||||||
python_binary(
|
|
||||||
name = 'maven_deploy',
|
|
||||||
main = 'maven_deploy.py',
|
|
||||||
deps = [':util'],
|
|
||||||
visibility = ['PUBLIC'],
|
|
||||||
)
|
|
||||||
|
|
||||||
python_library(
|
python_library(
|
||||||
name = 'util',
|
name = 'util',
|
||||||
srcs = ['util.py'],
|
srcs = ['util.py'],
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
include_defs('//VERSION')
|
|
||||||
|
|
||||||
DOCS = ['//Documentation:html.zip']
|
DOCS = ['//Documentation:html.zip']
|
||||||
LIBS = [
|
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