我正在构建一个java项目,使用gradle进行版本控制.
我正在从旧版本的Drools规则引擎5.5.0迁移到6.2.0.而不是去"大爆炸"并改变everey类来使用新版本,我想在当时更改一个类,并在迁移所有类时删除旧的依赖项.
在我的gradle.build中,我设置了:
compile 'org.drools:drools-compiler:6.2.0.Final'
compile 'org.kie:kie-api:6.2.0.Final'
compile 'org.drools:drools-core:6.2.0.Final'
compile 'org.drools:drools-core:5.5.0.Final'
compile 'org.drools:drools-compiler:5.5.0.Final'
Run Code Online (Sandbox Code Playgroud)
但它只下载最新版本的库.gradle是否支持同一个库的多个版本?
小智 11
repositories {
mavenCentral()
}
configurations {
compile5
compile6
}
dependencies {
compile5 'org.osgi:org.osgi.core:5.0.0'
compile6 'org.osgi:org.osgi.core:6.0.0'
}
task libs(type: Sync) {
from configurations.compile5
from configurations.compile6
into "$buildDir/libs"
}
Run Code Online (Sandbox Code Playgroud)
Gradle提供以下冲突解决策略:
最新:使用最新版本的依赖项.这是Gradle的默认策略,只要版本向后兼容,它通常是一个合适的选择.
失败:版本冲突导致构建失败.此策略要求在构建脚本中显式解决所有版本冲突.有关如何明确选择特定版本的详细信息,请参阅ResolutionStrategy.
没有gradle不支持同一个库的多个版本。默认情况下它将选择最新的,但是您可以使用
org.gradle.api.artifacts.ResolutionStrategy.failOnVersionConflict()
Run Code Online (Sandbox Code Playgroud)
如果发生冲突,默认情况下,Gradle使用最新的冲突版本。但是,您可以更改此行为。使用此方法可以将解析配置为在任何版本冲突时急于失败,例如,同一配置中具有相同依赖项(组和名称相等)的多个不同版本。
从这里获取https://gradle.org/docs/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html
| 归档时间: |
|
| 查看次数: |
16870 次 |
| 最近记录: |