maven_jar规则

时间:2017-03-30 05:02:19

标签: bazel

我的工作区中有以下maven_jar:

maven_jar(
    name = "com_google_code_findbugs_jsr305",
    artifact = "com.google.code.findbugs:jsr305:3.0.1",
    sha1 = "f7be08ec23c21485b9b5a1cf1654c2ec8c58168d",
)

在我的项目中,我通过@com_google_code_findbugs_jsr305//jar引用它。但是,我现在希望依赖于引用@com_google_code_findbugs_jsr305而没有jar目标的第三方库。

我尝试同时查看bindalias,但alias无法在WORKSPACE中应用,bind似乎不允许您将目标定义为外部库。

我可以重命名我使用的版本,因此它不会发生冲突,但这感觉就像是错误的解决方案。

1 个答案:

答案 0 :(得分:2)

IIUC,您的代码需要依赖于RewriteCond %{HTTPS} !=on RewriteRule .? https://blog.ryangiglio.com%{REQUEST_URI} [END,QSA,R=301] @com_google_code_findbugs_jsr305//jar。不幸的是,没有任何预先构建的规则为这两个目标生成BUILD文件,因此您基本上必须自己定义BUILD文件。幸运的是,@ jart已经在你链接的the closure rule中为你编写了大部分内容。在line 69添加以下内容之后,您只需添加@com_google_code_findbugs_jsr305//:com_google_code_findbugs_jsr305几行:

//jar:jar

这会在存储库中创建一个repository_ctx.file( 'jar/BUILD', "\n".join([ "package(default_visibility = '//visibility:public')"] + _make_java_import('jar', '//:com_google_code_findbugs_jsr305.jar') (或等效的//jar:jar)目标。