亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為 XNAT 導入 Gradle 項目時出現的問題 - 未解析的類型

為 XNAT 導入 Gradle 項目時出現的問題 - 未解析的類型

30秒到達戰場 2022-09-22 16:36:31
我嘗試首次使用 Eclipse 2018-12 為 XNAT 導入 Gradle 項目。我創建了項目,右鍵單擊,選擇“漸變”,然后選擇“現有漸變項目”。導入完成后,簡單上傳失敗.java出現錯誤 - “無法解析類型。它是從所需的.class文件中間接引用的“。我已經檢查過了,我有共享資源-lang3-3.8.1.jar。我需要做些什么來解決這個問題?我的構建.gradle 依賴項是:// TODO: This is a pretty minimal set of dependencies, so don't worry if you need to add more.dependencies {    implementation("org.nrg.xnat:web") {        transitive = false    }    implementation("org.nrg.xnat:xnat-data-models") {        transitive = false    }    implementation("org.nrg.xdat:core") {        transitive = false    }    implementation "org.nrg:prefs"    implementation "org.nrg:framework"    implementation("turbine:turbine") {        transitive = false    }    implementation("org.apache.velocity:velocity") {        transitive = false    }    implementation("stratum:stratum") {        transitive = false    }    implementation "log4j:log4j"    implementation "io.springfox:springfox-swagger2"    compile group: 'ecs', name: 'ecs', version: '1.4.2'}
查看完整描述

2 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

另一種選擇是將組織.nrg.xnat:web 的依賴項配置從編譯或實現更改為僅編譯。這使您可以為插件聲明較少的依賴項,因為您可以允許傳遞依賴項。ECS 依賴關系來自 XNAT 本身的類,因此允許傳遞依賴關系意味著您不必聲明可能間接引用的所有內容。我剛剛在XNAT LDAP身份驗證插件中進行了此更改,然后從以下位置開始:


implementation("org.nrg.xnat:web") {

    transitive = false

}

implementation("org.nrg.xnat:xnat-data-models") {

    transitive = false

}

implementation("org.nrg.xdat:core") {

    transitive = false

}

implementation("org.nrg:prefs") {

    transitive = false

}

implementation("org.nrg:framework") {

    transitive = false

}


implementation "org.springframework:spring-web"

implementation "org.springframework.security:spring-security-config"

implementation "org.springframework.security:spring-security-ldap"


implementation "org.apache.commons:commons-lang3"

implementation "org.hibernate.javax.persistence:hibernate-jpa-2.1-api"

implementation "com.google.guava:guava"

implementation "org.slf4j:slf4j-api"

implementation "log4j:log4j"


implementation "org.springframework.security:spring-security-web"

implementation "javax.servlet:javax.servlet-api"


compileOnly "com.google.code.findbugs:jsr305"

compileOnly "org.apache.ivy:ivy:2.4.0"

compileOnly("stratum:stratum") {

    transitive = false

}

對此:


compileOnly "org.nrg.xnat:web"

compileOnly "org.springframework.security:spring-security-ldap"

compileOnly "org.slf4j:slf4j-nop"

如果您運行此命令:


$ ./gradlew dependencies

你會看到 ecs:ecs:1.4.2 通過許多可傳遞的依賴項被拉入。


查看完整回答
反對 回復 2022-09-22
?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

org.apache.ecs.ConcreteElement來自阿帕奇元素構造集 (ECS),例如包含在 ecs-1.4.2.jar。

要解決此問題,請向文件添加依賴項,如下所示:build.gradle

//  
compile group: 'ecs', name: 'ecs', version: '1.4.2'


查看完整回答
反對 回復 2022-09-22
  • 2 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號