h22*_*h22 1 java eclipse dependencies dependency-management gradle
我正在开发一个子项目,它是庞大的多项目Gradle构建的一部分.我需要来自其他子项目的一些Java类,但是我不需要任何依赖它们,因为我使用的某些库需要不同版本的这些.
我最初将所需的子项目配置为
compile project(':other_needed_sub_project')
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下,gradle eclipse任务会将项目添加到项目树中.它们的依赖项出现在类路径上,导致我的应用程序选择了错误的版本.在Eclipse中,包含的项目似乎优先于指定的库.
作为一个有效的解决方案,我目前使用现有的Maven构建构建所需子项目的jar,然后使用
compile files('../other_needed_sub_project/target/dist/other_needed_sub_project.jar')
Run Code Online (Sandbox Code Playgroud)
这正是我需要的 - 没有附加的库.但是,这意味着在使用Gradle构建子项目之前,我必须运行不同的构建.
Gradle可以构建所需的子项目,然后只在Eclipse配置中添加对最终jar的引用吗?
您可以从依赖关系中排除模块
dependencies {
implementation (project(":sub_project")) {
exclude group: 'grp1', module: 'mdl1'
exclude group: 'grp2'
exclude module: 'mdl2'
}
}
Run Code Online (Sandbox Code Playgroud)
您可以排除依赖项的所有传递依赖项:
compile('groupId:artifactId:version') {
transitive = false
}
Run Code Online (Sandbox Code Playgroud)
或者你可以,但我当然不建议这样排除每个依赖,如下所示:
compile('groupId:artifactId:version') {
exclude module: 'groupId:artifactId:version'
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5446 次 |
| 最近记录: |