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 通过许多可传递的依赖项被拉入。
TA贡献1851条经验 获得超5个赞
org.apache.ecs.ConcreteElement
来自阿帕奇元素构造集 (ECS),例如包含在 ecs-1.4.2.jar
。
要解决此问题,请向文件添加依赖项,如下所示:build.gradle
// compile group: 'ecs', name: 'ecs', version: '1.4.2'
添加回答
举报