簡體   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