我試圖編寫一個應用程序來理解spark和dagger 2.但無法使用生成的匕首文件。匕首2:無法在Intellij Idea(Kotlin)中找到生成的類
這個問題有很多類似的問題,但我無法用這些問題來解決問題。
我的項目可以在GitHub上here
的的build.gradle文件看起來可以找到這樣
...
apply plugin: 'kotlin-kapt'
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
compile "com.sparkjava:spark-kotlin:$spark_kotlin_version"
compile "org.slf4j:slf4j-log4j12:$slf4j_version"
compile "com.google.dagger:dagger:$dagger_version"
kapt "com.google.dagger:dagger-compiler:$dagger_version"
testCompile group: 'junit', name: 'junit', version: '4.12'
}
....
這是SparkSetup.kt
類,我試圖注入。模塊和組件對於本存在於co.pissarra.util.dagger
包
的SetupModule.kt
內容看起來像這樣
@Module
class SetUpModule {
@Provides
@Singleton
fun provideSparkSetup() : SparkSetup {
return SparkSetup()
}
}
這是AppComponent.kt
類
@Singleton
@Component(modules = arrayOf(SetUpModule::class))
interface AppComponent {
fun sparkSetup() : SparkSetup
}
在理想情況下應該有一個類由名稱DaggerAppComponent
,它實際上存在於構建目錄(生成和類)中。但是這隻有在項目中的任何地方都沒有使用DaggerAppComponent
時纔有效。如果我嘗試使用這個,intellij的想法給出了錯誤,Unresolved reference: DaggerAppComponent
和該項目也無法建立。
我想更改文件ContainerRunner.kt
而不是直接調用SparkSetup().init()
,我希望通過DI完成。
我試過用匕首的想法。生成的可能是在生成文件夾中。您必須將其添加到您的Gradle文件中的源代碼集。 – Joshua