2017-08-29 20 views

回答

3

簡短的回答是肯定的,這是可能的。

您可以使用java_common模塊進行方面實現,其方式與您在規則實現中使用的方式相同。

從文檔上java_common.provider

  • java_common.provider.compile_jarsjava_common.provider.transitive_compile_time_jars是指在編譯時
  • java_common.provider.transitive_runtime_jars使用ijars是指在運行時使用的全部罐子。

在編譯時的完整罐尚不可用,但有人正在努力揭露此功能。 (問題#3528在GitHub上。)

確保你也閱讀博客文章對這個話題:https://blog.bazel.build/2017/03/07/java-sandwich.html

+0

這真是個好消息!具體如何訪問提供商?我無法在'ctx.rule.attr'和'target'中找到它... – Natan

+0

在'ctx.rule.attr.deps'下找到它: 'for dep in ctx.rule.attr.deps : 如果java_common.provider在dep:' – Natan

+0

好,那麼'java_common.provider'可以從'target'訪問嗎?我需要知道當前目標的java輸出是什麼,而不是依賴... – Natan

相關問題