簡體   English   中英

bazel:sema注釋和子目錄

[英]bazel: sema annotation and sub directory

我正在嘗試從行家遷移到淡褐色。 我在java_library(和注釋處理器)中有一種奇怪的行為:

我有一個子目錄,其中有一個BUILD文件。

諸如appdirect-sms-gateway / appdirect-sms-gateway-settings-impl / BUILD之類的東西:

java_library(
    name = "appdirect_sms_gateway_settings_impl",
    srcs = glob(["src/main/java/**/*.java"]),
    deps = [
        ":mysema_query",
        …
    ],
)

java_plugin(
    name = "mysema_query_plugin",
    processor_class = "com.mysema.query.apt.jpa.JPAAnnotationProcessor",
    deps = [
        "@guava_jar//jar",
        "@javax_inject_jar//jar",
        "@javax_persistence_jar//jar",
        "@mysema_codegen_jar//jar",
        "@querydsl_apt_jar//jar",
        "@querydsl_codegen_jar//jar",
        "@querydsl_core_jar//jar",
    ],
)

java_library(
    name = "mysema_query",
    exported_plugins = [":mysema_query_plugin"],
    exports = [
        "@guava_jar//jar",
        "@javax_inject_jar//jar",
        "@javax_persistence_jar//jar",
        "@mysema_codegen_jar//jar",
        "@querydsl_apt_jar//jar",
        "@querydsl_codegen_jar//jar",
        "@querydsl_core_jar//jar",
    ],
)

當我編譯它時,它可以正常工作,即

bazel build -s //appdirect-sms-gateway/appdirect-sms-gateway-settings-impl:appdirect_sms_gateway_settings_impl

但是,當我使用“全局”構建文件時:

/建立:

java_library(
  name = "appdirect-parent",
  srcs = glob(["*.java"]),
  deps = [
    …
    "appdirect-sms-gateway/appdirect-sms-gateway-settings-impl:appdirect_sms_gateway_settings_impl",
  ],
)

它失敗並顯示:

$ bazel build --jobs 1 -s //:all

INFO: Analysed 238 targets (0 packages loaded).
INFO: Found 238 targets...
SUBCOMMAND: # //appdirect-sms-gateway/appdirect-sms-gateway-settings-impl:appdirect_sms_gateway_settings_impl [action 'Compiling Java headers appdirect-sms-gateway/appdirect-sms-gateway-settings-impl/libappdirect_sms_gateway_settings_impl-hjar.jar (8 files) and running 
annotation processors (AnnotationProcessorHider$AnnotationProcessor)']
(cd /private/var/tmp/_bazel_nicolas.zin/a2e37cae9143f2d5cb81548a1629daf9/execroot/__main__ && \
  exec env - \
    LC_CTYPE=en_US.UTF-8 \
  external/local_jdk/bin/java -Xverify:none -Xbootclasspath/p:external/bazel_tools/third_party/java/jdk/langtools/javac-9+181-r4173-1.jar -jar external/bazel_tools/tools/jdk/turbine_deploy.jar @bazel-out/darwin-fastbuild/bin/appdirect-sms-gateway/appdirect-sms-gateway-settings-impl/libappdirect_sms_gateway_settings_impl-hjar.jar-2.params)
ERROR: /Users/nicolas.zin/Documents/git/AppDirect.bazel/appdirect-parent/appdirect-sms-gateway/appdirect-sms-gateway-settings-impl/BUILD:5:1: Compiling Java headers appdirect-sms-gateway/appdirect-sms-gateway-settings-impl/libappdirect_sms_gateway_settings_impl-hjar.jar 
(8 files) and running annotation processors 
(AnnotationProcessorHider$AnnotationProcessor) failed (Exit 1)
appdirect-sms-gateway/appdirect-sms-gateway-settings-impl/src/main/java/com/appdirect/backend/sms/gateway/settings/dao/SmsGatewaySettingsDAOImpl.java:6: error: cannot find symbol
  symbol:   class QSmsGatewaySettings
  location: package com.appdirect.backend.sms.gateway.settings
appdirect-sms-gateway/appdirect-sms-gateway-settings-impl/src/main/java/com/appdirect/backend/sms/gateway/settings/dao/SmsGatewaySettingsDAOImpl.java:12: error: cannot find symbol
  symbol:   class QSmsGatewaySettings
  location: class com.appdirect.backend.sms.gateway.settings.dao.SmsGatewaySettingsDAOImpl
INFO: Elapsed time: 2.172s, Critical Path: 1.71s
INFO: 0 processes.
FAILED: Build did NOT complete successfully

QSmsGatewaySettings是由sema注釋插件生成的類

就像沒有考慮到bazel-out / darwin-fastbuild / bin / appdirect-sms-gateway / appdirect-sms-gateway-settings-impl / libappdirect_sms_gateway_settings_impl-gensrc.jar文件一樣

有人遇到同樣的問題嗎? 任何想法,我在做什么錯?

問候,

當然,我必須發布問題以找到答案:

我需要介紹一個

generates_api = True

即:

java_library(
    name = "mysema_query",
    generates_api = True,
    exported_plugins = [":mysema_query_plugin"],
    exports = [
        "@guava_jar//jar",
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM