pubref / rules_kotlin

Bazel rules for Kotlin
Other
159 stars 20 forks source link

`kotlin_compile` rule does not include all transitive dependencies #47

Open fishy opened 6 years ago

fishy commented 6 years ago

An example is at https://github.com/fishy/onepwd/tree/c56928e42bc521df2be9f975958019718dae53f5. In https://github.com/fishy/onepwd/blob/c56928e42bc521df2be9f975958019718dae53f5/BUILD#L40-L50, only com_android_support_appcompat_v7_27_0_1 and com_android_support_preference_v7_27_0_1 are actually directly depended, and everything else in aar_deps are just transitive dependencies from those 2 libraries (you can see that on https://raw.githubusercontent.com/aj-michael/gmaven_rules/master/gmaven.bzl).

But if I remove everything else and only kept the 2 libraries, bazel build :onepwd_compile will fail, indicates that the transitive dependencies are not passed to the kotlin_compile rule correctly.

fishy commented 6 years ago

After removing everything else and only kept the 2 libraries, bazel query actually show the correct transitive dependencies:

$ bazel query 'deps(//:onepwd_compile)'
...
//:onepwd_aar
@com_android_support_preference_v7_27_0_1//aar:aar
@com_android_support_support_v4_27_0_1//aar:aar
@com_android_support_support_v4_27_0_1//aar:support-v4-27.0.1.aar
@com_android_support_support_media_compat_27_0_1//aar:aar
@com_android_support_support_media_compat_27_0_1//aar:support-media-compat-27.0.1.aar
@com_android_support_recyclerview_v7_27_0_1//aar:aar
@com_android_support_recyclerview_v7_27_0_1//aar:recyclerview-v7-27.0.1.aar
@com_android_support_preference_v7_27_0_1//aar:preference-v7-27.0.1.aar
@com_android_support_appcompat_v7_27_0_1//aar:aar
@com_android_support_support_fragment_27_0_1//aar:aar
@com_android_support_support_fragment_27_0_1//aar:support-fragment-27.0.1.aar
@com_android_support_support_core_utils_27_0_1//aar:aar
@com_android_support_support_core_utils_27_0_1//aar:support-core-utils-27.0.1.aar
@com_android_support_appcompat_v7_27_0_1//aar:appcompat-v7-27.0.1.aar
@com_android_support_animated_vector_drawable_27_0_1//aar:aar
@com_android_support_support_vector_drawable_27_0_1//aar:aar
@com_android_support_support_vector_drawable_27_0_1//aar:support-vector-drawable-27.0.1.aar
@com_android_support_support_core_ui_27_0_1//aar:aar
@com_android_support_support_core_ui_27_0_1//aar:support-core-ui-27.0.1.aar
@com_android_support_support_compat_27_0_1//aar:aar
@com_android_support_support_compat_27_0_1//aar:support-compat-27.0.1.aar
@android_arch_lifecycle_runtime_1_0_0//aar:aar
@android_arch_lifecycle_runtime_1_0_0//aar:runtime-1.0.0.aar
@android_arch_lifecycle_common_1_0_0//jar:jar
@android_arch_lifecycle_common_1_0_0//jar:common-1.0.0.jar
@android_arch_core_common_1_0_0//jar:jar
@com_android_support_support_annotations_26_1_0//jar:jar
@com_android_support_support_annotations_26_1_0//jar:support-annotations-26.1.0.jar
@android_arch_core_common_1_0_0//jar:common-1.0.0.jar
@com_android_support_support_annotations_27_0_1//jar:jar
@com_android_support_support_annotations_27_0_1//jar:support-annotations-27.0.1.jar
@com_android_support_animated_vector_drawable_27_0_1//aar:animated-vector-drawable-27.0.1.aar
...

But I didn't figure out a way to pass them to kotlin_compile rule correctly :(