Added less hacky way of downloading jars
This commit is contained in:
parent
de04a27799
commit
1be812a887
1 changed files with 33 additions and 33 deletions
66
Makefile
66
Makefile
|
|
@ -2,52 +2,52 @@ include golang.mk
|
|||
.DEFAULT_GOAL := test # override default goal set in library makefile
|
||||
|
||||
SHELL := /bin/bash
|
||||
JAR_DIR := jars
|
||||
PKG := github.com/Clever/amazon-kinesis-client-go
|
||||
PKGS := $(shell go list ./... | grep -v /vendor )
|
||||
.PHONY: download_jars run build
|
||||
|
||||
URL_PREFIX := http://search.maven.org/remotecontent?filepath=
|
||||
|
||||
# this list lifted from https://github.com/awslabs/amazon-kinesis-client-python/blob/fb49c6390c0593fbcf81d6c34c5245726c15b2f3/setup.py#L60
|
||||
JARS_TO_DOWNLOAD := $(addprefix $(JAR_DIR)/,com/amazonaws/amazon-kinesis-client/1.7.2/amazon-kinesis-client-1.7.2.jar \
|
||||
com/amazonaws/aws-java-sdk-dynamodb/1.11.14/aws-java-sdk-dynamodb-1.11.14.jar \
|
||||
com/amazonaws/aws-java-sdk-s3/1.11.14/aws-java-sdk-s3-1.11.14.jar \
|
||||
com/amazonaws/aws-java-sdk-kms/1.11.14/aws-java-sdk-kms-1.11.14.jar \
|
||||
com/amazonaws/aws-java-sdk-core/1.11.14/aws-java-sdk-core-1.11.14.jar \
|
||||
commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar \
|
||||
org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar \
|
||||
org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4.jar \
|
||||
commons-codec/commons-codec/1.9/commons-codec-1.9.jar \
|
||||
com/fasterxml/jackson/core/jackson-databind/2.6.6/jackson-databind-2.6.6.jar \
|
||||
com/fasterxml/jackson/core/jackson-annotations/2.6.0/jackson-annotations-2.6.0.jar \
|
||||
com/fasterxml/jackson/core/jackson-core/2.6.6/jackson-core-2.6.6.jar \
|
||||
com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.6.6/jackson-dataformat-cbor-2.6.6.jar \
|
||||
joda-time/joda-time/2.8.1/joda-time-2.8.1.jar \
|
||||
com/amazonaws/aws-java-sdk-kinesis/1.11.14/aws-java-sdk-kinesis-1.11.14.jar \
|
||||
com/amazonaws/aws-java-sdk-cloudwatch/1.11.14/aws-java-sdk-cloudwatch-1.11.14.jar \
|
||||
com/google/guava/guava/18.0/guava-18.0.jar \
|
||||
com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.jar \
|
||||
commons-lang/commons-lang/2.6/commons-lang-2.6.jar)
|
||||
|
||||
EMPTY :=
|
||||
SPACE := $(EMPTY) $(EMPTY)
|
||||
JAVA_CLASS_PATH := $(subst $(SPACE),:,$(JARS_TO_DOWNLOAD))
|
||||
$(eval $(call golang-version-check,1.8))
|
||||
|
||||
CONSUMER ?= consumer
|
||||
TMP_DIR := ./tmp-jars
|
||||
JAR_DIR := ./jars/
|
||||
KCL_VERSION := 1.7.6
|
||||
|
||||
$(JARS_TO_DOWNLOAD):
|
||||
mkdir -p `dirname $@`
|
||||
curl -s -L -o $@ -O $(URL_PREFIX)`echo $@ | sed 's/$(JAR_DIR)\///g'`
|
||||
define POM_XML_FOR_GETTING_DEPENDENT_JARS
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.clever.kinesisconsumers</groupId>
|
||||
<artifactId>$(CONSUMER)</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.amazonaws</groupId>
|
||||
<artifactId>amazon-kinesis-client</artifactId>
|
||||
<version>$(KCL_VERSION)</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
endef
|
||||
export POM_XML_FOR_GETTING_DEPENDENT_JARS
|
||||
download_jars:
|
||||
command -v mvn >/dev/null 2>&1 || { echo >&2 "Maven not installed. Install maven!"; exit 1; }
|
||||
mkdir -p $(JAR_DIR) $(TMP_DIR)
|
||||
echo $$POM_XML_FOR_GETTING_DEPENDENT_JARS > $(TMP_DIR)/pom.xml
|
||||
cd $(TMP_DIR) && mvn dependency:copy-dependencies
|
||||
mv $(TMP_DIR)/target/dependency/* $(JAR_DIR)/
|
||||
# Download the STS jar file for supporting IAM Roles
|
||||
ls $(JAR_DIR)/aws-java-sdk-core-*.jar | sed -e "s/.*-sdk-core-//g" | sed -e "s/\.jar//g" > /tmp/version.txt
|
||||
curl -o $(JAR_DIR)/aws-java-sdk-sts-`cat /tmp/version.txt`.jar http://central.maven.org/maven2/com/amazonaws/aws-java-sdk-sts/`cat /tmp/version.txt`/aws-java-sdk-sts-`cat /tmp/version.txt`.jar
|
||||
rm -r $(TMP_DIR)
|
||||
|
||||
download_jars: $(JARS_TO_DOWNLOAD)
|
||||
all: test build
|
||||
|
||||
build:
|
||||
CGO_ENABLED=0 go build -installsuffix cgo -o build/$(CONSUMER) $(PKG)/cmd/$(CONSUMER)
|
||||
|
||||
run: build download_jars
|
||||
command -v java >/dev/null 2>&1 || { echo >&2 "Java not installed. Install java!"; exit 1; }
|
||||
java -cp $(JAVA_CLASS_PATH) \
|
||||
java -cp "$(JAR_DIR)/*" \
|
||||
com.amazonaws.services.kinesis.multilang.MultiLangDaemon \
|
||||
$(CONSUMER).properties
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue