Giter Club home page Giter Club logo

Comments (8)

hsyed avatar hsyed commented on August 20, 2024

I don't develop on Android, So I need some feedback from upstream bazel devs who maintain the android rules for the best way integrate with the android.

My advice would be to use kt_jvm_library to compile your Kotlin srcs and then feed those into Android or Java rules for the time being.

from rules_kotlin.

ahumesky avatar ahumesky commented on August 20, 2024

The aar_import rule provides a JavaInfo provider:
https://github.com/bazelbuild/bazel/blob/3a7b8bc2abeaf8b8647c037bed1dd5fd73b8392b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java#L199

which is the same thing that java_import does:
https://github.com/bazelbuild/bazel/blob/3a7b8bc2abeaf8b8647c037bed1dd5fd73b8392b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java#L177

Does having a java_import in the deps of a kt_jvm_library work? E.g, if you extend just Activity, which would come from the android.jar through the java_import, does that work?

from rules_kotlin.

kafji avatar kafji commented on August 20, 2024

@hsyed that's my plan.

@ahumesky it does works.

I've solved my problem. It was that @appcompat_v7//aar doesn't include its transitive dependencies. I.e. support-fragment and support-core-ui.

from rules_kotlin.

ahumesky avatar ahumesky commented on August 20, 2024

Glad you were able to find a solution. Transitive dependency management is something that we're working to improve. In the meantime, depending on your needs, there are temporary workaround like https://github.com/aj-michael/gmaven_rules which set up the transitive dependencies for you.

from rules_kotlin.

kafji avatar kafji commented on August 20, 2024

@ahumesky I was using that. I guess it's not working because the transitive dependencies are declared on deps attribute when it should be on exports.

from rules_kotlin.

ahumesky avatar ahumesky commented on August 20, 2024

Which version of bazel are you using? I believe that this was fixed with bazelbuild/bazel#4472

from rules_kotlin.

kafji avatar kafji commented on August 20, 2024

@ahumesky

Build label: 0.11.1
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Tue May 14 07:48:23 +50148 (1520362424903)
Build timestamp: 1520362424903
Build timestamp as int: 1520362424903

Repro https://github.com/kafji/bazel48

from rules_kotlin.

ahumesky avatar ahumesky commented on August 20, 2024

Thanks for the repro, looks like there's still something going on with deps vs exports.

from rules_kotlin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.