[英]javax.inject does not exists
To investigate troubles with javax.inject
I have created minimalistic Gradle project in IntelliJ IDEA.为了调查
javax.inject
问题,我在 IntelliJ IDEA 中创建了简约的 Gradle 项目。
It contains Main.java
only:它只包含
Main.java
:
import javax.inject.Scope;
public class Main {
public static void main(String[] args) {}
}
build.gradle构建.gradle
buildscript {
repositories {
mavenCentral()
}
}
apply plugin: 'java'
dependencies {
compileOnly 'javax.annotation:jsr250-api:1.0'
}
and settings.gradle和 settings.gradle
rootProject.name = 'test'
Building the project I got构建我得到的项目
Error:(1, 20) java: package javax.inject does not exist
错误:(1, 20) java: 包 javax.inject 不存在
What's wrong with javax, why it doesn't exists?? javax 有什么问题,为什么它不存在??
Hmm, it seems the problem is not specifically with javax.嗯,似乎问题不是专门针对 javax。 Tried to add different dependencies from mavenCentral, no one works.
试图从 mavenCentral 添加不同的依赖项,没有人工作。 Like Gradle does not load external libraries at all.
就像 Gradle 根本不加载外部库。
Solved解决了
The problem was with repositories
- it must be outside of buildscript
.问题在于
repositories
- 它必须在buildscript
之外。
只需带上javax.inject
依赖
implementation 'javax.inject:javax.inject:1'
Compile only dependencies are distinctly different than regular “compile” dependencies.仅编译依赖项与常规“编译”依赖项明显不同。 They are not included on the runtime classpath and are non-transitive, meaning they are not included in dependent projects.
它们不包含在运行时类路径中并且是不可传递的,这意味着它们不包含在依赖项目中。 This is true when using Gradle project dependencies and also when publishing to Maven or Ivy repositories.
这在使用 Gradle 项目依赖项以及发布到 Maven 或 Ivy 存储库时都是如此。 In the latter case, compile only dependencies are simply omitted from published metadata.
在后一种情况下,仅编译依赖项会从已发布的元数据中简单地省略。
see https://docs.gradle.org/current/userguide/artifact_dependencies_tutorial.html见https://docs.gradle.org/current/userguide/artifact_dependencies_tutorial.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.