如何让 Dagger 2 与 Android studio java 图书馆项目一起工作
How do I get dagger 2 to work with Android studio java library project
我有一个应用程序模块(这是我的应用程序)和一个 java 库项目模块(称为 api)我想在 api 模块中使用 dagger 2但是注释处理器不工作,没有像人们期望的那样生成前缀为 类 的匕首(例如 DaggerApiComponent)。任何帮助将不胜感激,是的,我正在使用 gradle.
我终于设法解决了这个问题,gradle 的 android-apt 插件仅在使用 apply plugin: 'com.android.application'
时可用。因此,在无法使用 com.android.application
插件的 java 库中,您需要改用插件 apply plugin: "net.ltgt.apt"
在应用此插件后,您可以使用 apt 配置来实现 dagger 的编译器依赖性 apt "com.google.dagger:dagger-compiler:2.0.2"
在依赖块中。此外,您还需要 apply plugin: "idea"
才能使 net.ltgt.apt
正常工作,如果您不应用 idea 插件,注释处理器会生成匕首工厂 类 但它不会包含在 IDE的sourceSet,所以不要忘记应用idea插件。所以最后我的构建脚本看起来像这样
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "net.ltgt.gradle:gradle-apt-plugin:0.6"
}
}
apply plugin: 'java'
apply plugin: "net.ltgt.apt"
apply plugin: "idea"
dependencies {
// Dagger 2 and Compiler
compile 'com.google.dagger:dagger:2.0.2'
apt "com.google.dagger:dagger-compiler:2.0.2"
}
我有一个应用程序模块(这是我的应用程序)和一个 java 库项目模块(称为 api)我想在 api 模块中使用 dagger 2但是注释处理器不工作,没有像人们期望的那样生成前缀为 类 的匕首(例如 DaggerApiComponent)。任何帮助将不胜感激,是的,我正在使用 gradle.
我终于设法解决了这个问题,gradle 的 android-apt 插件仅在使用 apply plugin: 'com.android.application'
时可用。因此,在无法使用 com.android.application
插件的 java 库中,您需要改用插件 apply plugin: "net.ltgt.apt"
在应用此插件后,您可以使用 apt 配置来实现 dagger 的编译器依赖性 apt "com.google.dagger:dagger-compiler:2.0.2"
在依赖块中。此外,您还需要 apply plugin: "idea"
才能使 net.ltgt.apt
正常工作,如果您不应用 idea 插件,注释处理器会生成匕首工厂 类 但它不会包含在 IDE的sourceSet,所以不要忘记应用idea插件。所以最后我的构建脚本看起来像这样
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "net.ltgt.gradle:gradle-apt-plugin:0.6"
}
}
apply plugin: 'java'
apply plugin: "net.ltgt.apt"
apply plugin: "idea"
dependencies {
// Dagger 2 and Compiler
compile 'com.google.dagger:dagger:2.0.2'
apt "com.google.dagger:dagger-compiler:2.0.2"
}