我正在尝试将 Dagger 实现为 IntelliJ 项目中的依赖项注入器,但我的代码失败了:
import javax.inject.Inject;
Intellij 正在查找 '
javax
' 包,但找不到 'inject
' 包,因此失败。
我是 Android 新手,所以如果这是理所当然的事,我深表歉意,但是谁能告诉我为什么找不到注入包?
将其添加到您的 pom.xml
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
Dagger 依赖于 JSR 330,这是用于依赖注入的 Java 标准注释(想想:
@Inject
、@Singleton
等)。
这是一个您必须包含的单独的罐子。如果您使用的是集成依赖管理的构建系统(Maven、Gradle、Ant+Ivy、sbt),您将免费获得此工具。如果您仍然在罐子周围复制,那么您必须手动添加它。
您可以从 Mavencentral(底部)下载最新的 jar。
放入gradle
implementation 'javax.inject:javax.inject:1'
如果有人使用普通 Java 项目而不是 Maven 或 Gradle 等。您可以从这里下载单独的 Jar 文件 注入 Jar 文件
然后添加到你的外部库中,在IDEA中你可以这样做: 文件 -> 项目结构 -> 库 -> 新建项目库 (+)
然后找到图书馆的路径,工作就完成了。
//依赖注入 实现“com.google.dagger:dagger:$rootProject.dagger2Version”
// dependency injection
implementation "com.google.dagger:dagger:$rootProject.dagger2Version"
implementation {
exclude(group: 'javax.inject', module: 'javax.inject')
}
仅供参考,以防有人(像我一样)无意中发现目前正在运行(大型)JakartaEE 升级会话的人:
Jakarta EE 10 向 jakarta-namespace 移动了很多内容 - 包括
javax.inject
- 请参阅 https://mvnrepository.com/artifact/javax.inject/javax.inject
现在可以在 Maven 依赖项中找到类
Inject
https://mvnrepository.com/artifact/jakarta.inject/jakarta.inject-api