我得到以下错误在我的Spring启动gradle多模块项目。
Dependency resolution failed because of conflict(s) on the following module(s):
- org.javassist:javassist between versions 3.24.0-GA and 3.20.0-GA
根本原因是< code > spring-boot-starter-data-JPA 过渡依赖于3.24.0-GA,而< code > spring-boot-starter-thyme leaf 过渡依赖于3.20.0-GA。我使用的是Gradle Java平台Pulgin,而不是Spring Boot Gradle插件。
问题:
Gradle平台项目
plugins {
`java-platform`
}
javaPlatform {
allowDependencies()
}
dependencies {
api(enforcedPlatform("org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE"))
constraints {
api(project(":core"))
api(project(":email"))
api(project(":security"))
api(project(":app"))
api("com.github.bbottema:emailaddress-rfc2822:2.1.4")
api("com.icegreen:greenmail:1.5.11")
api("nl.jqno.equalsverifier:equalsverifier:3.1.12")
api("com.google.guava:guava:28.2-jre")
}
}
安全模块梯度项目
plugins {
`java-library-conventions`
}
dependencies {
implementation(project(":core"))
implementation(project(":email"))
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
testImplementation(testFixtures(project(":core")))
testImplementation(testFixtures(project(":email")))
}
完整的依赖性洞察报告
./gradlew :security:dependencyInsight --configuration compileClasspath --dependency org.javassist:javassist
> Task :security:dependencyInsight
Dependency resolution failed because of conflict(s) on the following module(s):
- org.javassist:javassist between versions 3.24.0-GA and 3.20.0-GA
org.javassist:javassist:3.24.0-GA
variant "compile" [
org.gradle.status = release (not requested)
org.gradle.usage = java-api
org.gradle.libraryelements = jar (compatible with: classes)
org.gradle.category = library
Requested attributes not found in the selected variant:
org.gradle.dependency.bundling = external
org.gradle.jvm.version = 11
]
Selection reasons:
- By conflict resolution : between versions 3.24.0-GA and 3.20.0-GA
org.javassist:javassist:3.24.0-GA
\--- org.hibernate:hibernate-core:5.4.12.Final
+--- org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE
| \--- project :platform
| \--- compileClasspath
\--- org.springframework.boot:spring-boot-starter-data-jpa:2.2.5.RELEASE
+--- compileClasspath (requested org.springframework.boot:spring-boot-starter-data-jpa)
\--- org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE (*)
org.javassist:javassist:3.20.0-GA -> 3.24.0-GA
\--- ognl:ognl:3.1.12
\--- org.thymeleaf:thymeleaf:3.0.11.RELEASE
+--- org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE
| \--- project :platform
| \--- compileClasspath
+--- org.thymeleaf:thymeleaf-spring5:3.0.11.RELEASE
| +--- org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE (*)
| \--- org.springframework.boot:spring-boot-starter-thymeleaf:2.2.5.RELEASE
| +--- compileClasspath (requested org.springframework.boot:spring-boot-starter-thymeleaf)
| \--- org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE (*)
\--- org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE
+--- org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE (*)
\--- org.springframework.boot:spring-boot-starter-thymeleaf:2.2.5.RELEASE (*)
(*) - dependencies omitted (listed previously)
A web-based, searchable dependency report is available by adding the --scan option.
BUILD SUCCESSFUL in 757ms
1 actionable task: 1 executed
不幸的是,这种类型的问题无法通过GradleJava平台插件解决。该插件创建约束,帮助依赖解决过程获得所需的版本,但它并没有消除冲突解决。您得到的错误是由于冲突解决发生了。在这种情况下,您瞬时获得了冲突的依赖项。唯一的解决方案是从带来不需要的版本的一阶依赖项中排除。
为了能够控制全局排除,你必须创建一个插件来做,然后每个项目都必须应用这个插件。我们在星云分辨率规则插件中使用这种方法。不幸的是,我们的插件不支持你的用例,所以不能在这里重用。
我可能会建议停止使用Resolution战略:失败版本冲突。像Spring这样的库有许多依赖项,您可能会在其中解决冲突。您需要进行大量手动调整来解决您的项目。
问题内容: 我是Yeoman / Grunt / Bower的新手。我有一个定义以下依赖项的文件: bower.json 在我的html文件中,我使用的是这些库的非精简版本,这些版本是通过命令安装的 index.html 如何配置grunt,因此它将: 仅将这些js文件的缩小版本复制到构建目录 替换HTML所以它会如变更至 不使用CDN时-是否建议将所有文件与自定义应用程序脚本结合在一起? 这里正
在我们的项目中,我们使用具有依赖项的库,例如: 作为安全修复的一部分,我们假设使用更高版本的依赖项。通用编解码器:通用编解码器:1.14。在不升级expo-file-system的情况下,有没有办法告诉gradle/maven我们要用一个特定版本的commons-codec:commons-codec?
MVNRepository通常为每个依赖项列出“版本”和“更新”。 如果我发布自己的包,如何指定“更新”版本 Maven在解决传递依赖时使用了哪个依赖项?所以如果我的包依赖于包A,它依赖于包B,版本=1.0,更新=1.1。我会得到哪个版本的B?
当我运行版本:显示依赖项更新时,它将显示我的依赖项的所有最新beta/里程碑版本。我更喜欢使用“release”包。 <代码>版本:使用最新版本谈论用最新版本“替换”。但是,我更喜欢手动更新版本。 我可以运行版本插件来报告我的依赖项和插件的最新“发布”版本吗? 我指的是mvnrepository上列出的包的“类型”。组织机构
我已经阅读了几十篇文章,解释了如何在PreferenceActivity中更改首选项的文本颜色。我没有偏好活动。我在res/xml中使用PreferenceFragment和PreferenceScreen 设置片段 fragment\u设置。xml 偏好。xml 我尝试将添加到中的所有首选项中,但所有文本仍然是黑色的。所有这些线程都在谈论创建一种新样式,但没有一个解释如何将其应用于首选项片段。
在我的项目中,我对'org.nd4j:nd4j-native-platform:0.6.0'有依赖关系,它给我带来了传递依赖关系: gradle:org.nd4j:nd4j-native:linux-ppc64le:0.6.0 gradle:org.nd4j:nd4j-native:macosx-x86_64:0.6.0 gradle:org.nd4j:nd4j-native:windows-x8