2017-10-18 14 views
0

如何使用Bazel直接在BUILD文件的依賴項部分指定groupid,工件和版本?如何使用Bazel直接在BUILD文件的依賴項部分指定groupid,工件和版本?

我想將一個簡單的gradle項目轉換爲bazel項目。因爲我有一個gradle項目(不是maven),所以不能真正使用generate_workspace

我想知道是否存在的僅僅是在依賴自身在構建文件中指定GAV更簡單的方法,以便它會是這個樣子

java_binary(
    name = "HelloWorld", 
    srcs = glob(["src/main/java/**/*.java"]), 
    resources = glob(["src/main/resources/**"]), 
    deps = ["com.fasterxml.jackson.core:jackson-core:2.8.8"], 
    main_class = "com.hello.sample.Foo" 
) 

回答

1

你試過直接使用maven_jar()

工作區:

maven_jar(
    name = "com_google_guava_guava", 
    artifact = "com.google.guava:guava:18.0", 
    sha1 = "cce0823396aa693798f8882e64213b1772032b09", 
) 

在BUILD:

java_binary(
    name = "HelloWorld", 
    srcs = glob(["src/main/java/**/*.java"]), 
    resources = glob(["src/main/resources/**"]), 
    deps = ["@com_google_guava_guava//jar"], 
    main_class = "com.hello.sample.Foo" 
) 

https://docs.bazel.build/versions/master/be/workspace.html#maven_jar

+0

我必須使用'maven_jar()'函數爲每個我的依賴?有一個'maven_jars()'函數需要一個數組嗎? – user1870400

+0

是的,你這樣做,並且沒有maven_jars()函數,儘管你可以使用Skylark在.bzl文件中自己編寫一個這樣的函數作爲宏。 https://docs.bazel.build/versions/master/skylark/macros.html – Jin

+0

還有https://github.com/johnynek/bazel-deps,這可能會有用。 – Jin

相關問題