繁体   English   中英

javax.inject 不存在

[英]javax.inject does not exists

为了调查javax.inject问题,我在 IntelliJ IDEA 中创建了简约的 Gradle 项目。

它只包含Main.java

import javax.inject.Scope;
public class Main {
    public static void main(String[] args) {}
}

构建.gradle

buildscript {
    repositories {
        mavenCentral()
    }
}
apply plugin: 'java'
dependencies {
    compileOnly 'javax.annotation:jsr250-api:1.0'
}

和 settings.gradle

rootProject.name = 'test'

构建我得到的项目

错误:(1, 20) java: 包 javax.inject 不存在

javax 有什么问题,为什么它不存在??

嗯,似乎问题不是专门针对 javax。 试图从 mavenCentral 添加不同的依赖项,没有人工作。 就像 Gradle 根本不加载外部库。

解决了

问题在于repositories - 它必须在buildscript之外。

只需带上javax.inject依赖

implementation 'javax.inject:javax.inject:1'

仅编译依赖项与常规“编译”依赖项明显不同。 它们不包含在运行时类路径中并且是不可传递的,这意味着它们不包含在依赖项目中。 这在使用 Gradle 项目依赖项以及发布到 Maven 或 Ivy 存储库时都是如此。 在后一种情况下,仅编译依赖项会从已发布的元数据中简单地省略。

https://docs.gradle.org/current/userguide/artifact_dependencies_tutorial.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM