Abh*_*mar 5 java android gson android-volley bazel
现在我正在这样
deps = [
":tensorflow_native_libs",
"//tensorflow/contrib/lite/java:tensorflowlite",
"@androidsdk//com.android.support:appcompat-v7-25.0.0",
"@androidsdk//com.android.volley:volley:1.1.0",
"@androidsdk//com.google.code.gson:gson:2.6.2"
],
Run Code Online (Sandbox Code Playgroud)
里面android_binary。但我收到此错误:
错误:/ home / abhi / Desktop / Git / SENA-28 / tensorflow / SenDetect / BUILD:24:1:// SenDetect:sendetect:无效标签'@ androidsdk // com.android.volley:volley:1.1.0'在“ android_binary”规则中属性“ deps”的元素3中:无效的目标名称“ volley:1.1.0”:目标名称可能不包含“:”
更新:rules_jvm_externalBazel团队的新规则集,用于以过渡方式获取和解决工件。
在这种情况下,WORKSPACE文件将包含以下内容:
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
artifacts = [
"com.android.volley:volley:1.1.0",
"com.google.code.gson:gson:2.6.2",
"com.android.support:design:27.0.2",
"com.android.support:support_annotations:jar:27.0.2",
],
repositories = [
"https://jcenter.bintray.com",
"https://maven.google.com",
]
)
Run Code Online (Sandbox Code Playgroud)
然后在BUILD文件中,您可以像这样直接依赖Volley和Gson:
android_library(
name = "my_lib",
srcs = # ...
deps = [
"@maven//:com_android_volley_volley",
"@maven//:com_google_code_gson_gson",
"@maven//:com_android_support_design",
"@maven//:com_android_support_support_annotations",
],
)
Run Code Online (Sandbox Code Playgroud)
双方gmaven_rules并maven_jar已被弃用。请不要再使用它们。
在docs.bazel.build上的文档中,按照其他相关说明进行了编辑:
将
maven_jar存储库规则用于未托管在Google Maven上的Maven依赖项。例如,要使用Volley 1.1.0和Gson 2.6.2,请将以下行添加到WORKSPACE项目目录顶层的文件中:Run Code Online (Sandbox Code Playgroud)maven_jar( name = "com_android_volley_volley", artifact = "com.android.volley:volley:1.1.0", ) maven_jar( name = "com_google_code_gson", artifact = "com.google.code.gson:gson:2.6.2", )然后,您可以在
BUILD文件中依赖它们:Run Code Online (Sandbox Code Playgroud)android_library( name = "my_app_lib", srcs = [..], deps = [ "@com_android_volley_volley//jar", "@com_google_code_gson//jar", ], )
请注意,maven_jar是不是传递的,所以它不会下载指定的jar的依赖关系。您将需要maven_jar为传递依赖项手动指定其他规则,或使用类似工具bazel-deps来自动生成它们。
对于托管在Google Maven存储库中的
@gmaven_rules依赖项,gmaven_artifact通过直接指定工件坐标, 提供了一种简单的方法来获取托管的依赖项。要使用
@gmaven_rules,请将以下行添加到WORKSPACE文件中:Run Code Online (Sandbox Code Playgroud)# Google Maven Repository GMAVEN_TAG = "20180513-1" http_archive( name = "gmaven_rules", strip_prefix = "gmaven_rules-%s" % GMAVEN_TAG, url = "https://github.com/bazelbuild/gmaven_rules/archive/%s.tar.gz" % GMAVEN_TAG, ) load("@gmaven_rules//:gmaven.bzl", "gmaven_rules") gmaven_rules()然后,
gmaven_artifact在您的BUILD文件的开头加载宏以使用它:Run Code Online (Sandbox Code Playgroud)load("@gmaven_rules//:defs.bzl", "gmaven_artifact") android_library( name = "my_app_lib", srcs = glob(["java/**/*.java"]), deps = [ gmaven_artifact("com.android.support:design:aar:27.0.2"), gmaven_artifact("com.android.support:support_annotations:jar:27.0.2"), ] # ... )
与不同maven_jar,它gmaven_artifact 是可传递的,因此您只需指定工件的坐标即可@gmaven_rules自动解决相关性。
| 归档时间: |
|
| 查看次数: |
752 次 |
| 最近记录: |