# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

VERSION_NAME=v2.6.0-beta10
GROUP=com.airbnb.android

POM_DESCRIPTION=Lottie is an animation library that renders Adobe After Effects animations natively in realtime.
POM_URL=https://github.com/airbnb/lottie-android
POM_SCM_URL=https://github.com/airbnb/lottie-android
POM_SCM_CONNECTION=scm:git@github.com:airbnb/lottie-android.git
POM_SCM_DEV_CONNECTION=scm:git@github.com:airbnb/lottie-android.git
POM_LICENSE_NAME=Apache License 2.0
POM_LICENSE_URL=https://github.com/airbnb/lottie-android/blob/master/LICENSE
POM_LICENSE_DIST=repo
POM_DEVELOPER_ID=airbnb
POM_DEVELOPER_NAME=Airbnb
POM_DEVELOPER_EMAIL=lottie@airbnb.com
POM_INCEPTION_YEAR=2017
