Как импортировать OpenCV android-sdk в мой проект, который использует Bazel? - PullRequest
0 голосов
/ 31 мая 2019

Я пытался импортировать opencv-android-sdk в мой проект Bazel, но я не могу это сделать.

Я попробовал этот ответ на SO, но при создании проекта я получаю ошибки, которые

error: package org.opencv.android does not exist

1 Ответ

1 голос
/ 04 июня 2019

Я вижу, что на Maven есть opencv-android артефакт .

Вы можете зависеть от этого, используя 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",
    ],
)

Затем в вашем файле BUILD, содержащем ваши цели Android, зависит от цели 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__"]
)

Наконец, вы должны иметь возможность ссылаться на классы, подобные org.opencv.core.Core, в своем коде Java Java.

PS рассмотрите возможность переключения всех ваших maven_jar и gmaven_rules / gmaven_artifact использовать rules_jvm_external.Прежние правила Maven устарели в пользу rules_jvm_external.

...