如何将 OpenCV android-sdk 导入我使用 Bazel 的项目?
How to import OpenCV android-sdk to my project which is using Bazel?
我一直在尝试将 opencv-android-sdk 导入到我的 Bazel 项目中,但我做不到。
我在 SO 上尝试了这个 但是在构建我的项目时我得到了
的错误
error: package org.opencv.android does not exist
我看到 Maven 上有一个 opencv-android
artifact。
您可以使用 rules_jvm_external
依赖于此。
在您的 WORKSPACE
文件中,指定依赖项以及其他外部依赖项:
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
artifacts = [
"org.opencv:opencv-android:1.0.1",
# ...
],
repositories = [
"https://maven.google.com",
"https://jcenter.bintray.com",
],
)
然后,在包含 Android 目标的 BUILD
文件中,取决于 OpenCV 目标:
android_library(
name = "my_lib",
custom_package = "com.example.bazel",
srcs = glob(["java/com/example/bazel/*.java"]),
manifest = "java/AndroidManifest.xml",
resource_files = glob(["res/**"]),
deps = [
"@maven//:org_opencv_opencv_android",
],
visibility = ["//src/test:__subpackages__"]
)
最后,您应该能够在 Android Java 代码中像 org.opencv.core.Core
一样引用 类。
P.S。考虑将所有 maven_jar
和 gmaven_rules
/gmaven_artifact
切换为使用 rules_jvm_external
。以前的 Maven 规则已被弃用,取而代之的是 rules_jvm_external
.
我一直在尝试将 opencv-android-sdk 导入到我的 Bazel 项目中,但我做不到。
我在 SO 上尝试了这个
error: package org.opencv.android does not exist
我看到 Maven 上有一个 opencv-android
artifact。
您可以使用 rules_jvm_external
依赖于此。
在您的 WORKSPACE
文件中,指定依赖项以及其他外部依赖项:
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
artifacts = [
"org.opencv:opencv-android:1.0.1",
# ...
],
repositories = [
"https://maven.google.com",
"https://jcenter.bintray.com",
],
)
然后,在包含 Android 目标的 BUILD
文件中,取决于 OpenCV 目标:
android_library(
name = "my_lib",
custom_package = "com.example.bazel",
srcs = glob(["java/com/example/bazel/*.java"]),
manifest = "java/AndroidManifest.xml",
resource_files = glob(["res/**"]),
deps = [
"@maven//:org_opencv_opencv_android",
],
visibility = ["//src/test:__subpackages__"]
)
最后,您应该能够在 Android Java 代码中像 org.opencv.core.Core
一样引用 类。
P.S。考虑将所有 maven_jar
和 gmaven_rules
/gmaven_artifact
切换为使用 rules_jvm_external
。以前的 Maven 规则已被弃用,取而代之的是 rules_jvm_external
.