Dapper is a fork of dagger2, with some modifications:
- gradle project with JUnit 5 tests
- full jpms support with module-name:
dagger - removed the producers extension and all producers annotations like
@ProductionComponent - remove kotlin special-casing and the dependency on
xprocessing - remove gwt special-casing and guava special casing, like support for
c.g.c.b.Optional - remove internal guava dependency
- remove the
experimental_turbine_hjarcompiler option
Dapper uses jakarta.inject annotations and ignores their javax.inject counterparts.
Existing dagger projects can use the following script to replace the imports:
for F in `find src/main/java -name "*.java"`; do
for N in Singleton Scope Inject Qualifier Provider; do
sed -i .bak "s/^import javax.inject.$N;$/import jakarta.inject.$N;/" $F
done
rm ${F}.bak
doneIf you have a modular java build, add this to module-info.java:
requires dagger;The gradle config is as follows:
implementation('io.github.jbock-java:dapper:2.41.2')
annotationProcessor('io.github.jbock-java:dapper-compiler:2.41.2')