OkBuck is a gradle plugin that lets developers utilize the Buck build system on a gradle project.
configuration.getResolvedConfiguration()
API which fails on android projects. In that case use ResolutionAction.LATEST extension property to enable using the latest version of every dependency.okbuck {
externalDependency {
enableExportedDeps = true
// If using android projects
resolutionAction = "latest"
}
}
okbuck {
externalDependency {
strictVisibility = true
enableExportedDeps = true
}
}
Changing dependencies like [2.2,)
are not visible after configuration resolution but can still cause non hermetic builds. See gradle docs
This version adds a new extension to pick a fixed version when encountering any such dependencies before resolution and during validation. It also adds the ability to ignore changing dependencies if they are resolved with other gradle resolution mechanisms
Example configuration:
okbuck {
dynamicDependencyVersionMap = [
"com.google.guava:guava:19+" : "24.1.1-jre",
"com.google.guava:guava:[10.+,)" : "24.1.1-jre",
"com.google.guava:guava:[14.0, 18.0]" : "18.0",
"ml.dmlc:xgboost4j-spark:0.7-SNAPSHOT" : "0.7",
]
dynamicDependenciesToIgnore = [
"ml.combust.mleap:mleap-xgboost-spark_2.11:0.10.0-SNAPSHOT",
]
}
android_module
rules (#851)okbuck {
externalDependencies {
autoValueConfigurations = [
"autoValueAnnotations",
"autoValueGson",
"autoValueParcel",
]
}
}
def autoValueDeps = [deps.apt.autoValue, deps.apt.autoValueAnnotations]
def autoValueGsonDeps = autoValueDeps + [deps.apt.autoValueGson]
def autoValueParcelDeps = autoValueDeps + [deps.apt.autoValueParcel]
afterEvaluate {
dependencies {
toolsExtraDepCache deps.external.saxon
autoValueAnnotations autoValueDeps
autoValueGson autoValueGsonDeps
autoValueParcel autoValueParcelDeps
}
}
processor-auto-value-annotations
instead of
processor_com.google.auto.value-auto-value-1.6__525046afa7fcbcf1dcd36f17908d83ff
-Xfriend-paths
are currently broken. Fix will be in #817