Comments (6)
kapt3 doesn't respect the processors attribute (likely I am encoding it incorrectly), it will happily discover processors from the classpath though.
from rules_kotlin.
implemented in #16 intellij support works well enough with dagger. The references are resolved against the compiled classes, an improvement would be to generate an annotations processing src jar and pass that through, happy for a PR on this.
from rules_kotlin.
Note, we really don't want to rely on classpath discovery. That's not a required feature of javax.annotation.processing implementations, though it happens to work in javac and kapt3 for now. But we shouldn't rely on non-spec behavior. It's fine for now, but once jetbrains attends to your issue with kapt3 configuration, we should revert to explicitly passing the processors via java_plugin targets.
As to "compilers being invoked twice" - is that necessary? I know javac does multiple "rounds" - I assume kapt3 does this also, with kotlinc, but I don't know that for sure.
from rules_kotlin.
On classpath discovery: Kapt does not respect the processor list so what I have done for the time being is exclude the plugin entry entirely if it has a null or empty processor_class
attribute. Need to wait on JB (link to issue above) to fix this.
Kotlinc does need to be invoked twice once with the kapt plugin config and once without, but this is done within the kotlin builder within the same function so the overhead I suspect is very low.
from rules_kotlin.
Kotlin Youtrack issue for annotation processor classes configuration.
from rules_kotlin.
Fixed since 1.2.40
from rules_kotlin.
Related Issues (20)
- Release notes for v1.9.0 contain incorrect url for http_archive HOT 4
- WorkerEnvironmentTest is failing with Bazel@HEAD HOT 1
- `Exception in thread "main" java.lang.NoClassDefFoundError: dagger/internal/Preconditions` with JDK 20 and 21
- Support generating Java code with KSP HOT 1
- bzlmod: Document how to specify toolchain parameters such as kt_kotlinc_options
- Expose lower-level Kotlin JVM compilation defs for aspects HOT 1
- Error turbine_direct_graal failed while executing Turbine command HOT 3
- kt_jvm_test does not include native library paths in java.library.path HOT 2
- WorkerEnvironmentTest is failing at Bazel@HEAD HOT 2
- Error when using AutoBazelRepository annotation processor HOT 1
- Dependency .jar not found for kt_js_library with v1.9.0, but works fine with previous version (v1.8.1)
- kotlin compiler and ksp repositories fail to initialize on windows HOT 4
- WorkerEnvironmentTest is failing with Bazel@HEAD HOT 1
- kt_jvm_test is incompatible with Java >= 18 HOT 1
- Generated types not visible to IntelliJ HOT 2
- [Feature Request] apoption support for KSP plugins HOT 4
- Bzlmod: kotlin compiler is unconditionally downloaded HOT 4
- Does KSP require a separate runner? HOT 2
- WorkerEnvironmentTest is flakey
- [Bazel CI] Test logs failed for kotlin-builder at Bazel@HEAD in CI HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rules_kotlin.