能否在主build.gradle文件中为特定子项目配置Eclipse Gradle依赖?
如何在Gradle主build.gradle中为特定子项目添加Eclipse类路径依赖?
当然可以做到!在Gradle的主build.gradle里,你有好几种灵活的方式给特定子项目添加这种Eclipse类路径依赖,比你尝试的写法更精准可控:
1. 给单个特定子项目配置
如果你只想给某个明确的子项目(比如名为sub-project-a的模块)添加依赖,可以直接指定子项目路径来配置:
// 先定义要添加的依赖 def dependency_p = new org.gradle.plugins.ide.eclipse.model.ProjectDependency('/dependency-1') dependency_p.exported = true // 针对单个子项目配置 project(':sub-project-a') { eclipse.classpath.file { whenMerged { classpath -> classpath.entries << dependency_p } } }
2. 给多个符合条件的子项目批量配置
如果要给一批子项目统一配置,可以通过subprojects块加上筛选条件来实现:
按子项目名称匹配
比如只给名称以service-开头的子项目添加依赖:
def dependency_p = new org.gradle.plugins.ide.eclipse.model.ProjectDependency('/dependency-1') dependency_p.exported = true subprojects { subproj -> if (subproj.name.startsWith('service-')) { eclipse.classpath.file { whenMerged { classpath -> classpath.entries << dependency_p } } } }
按子项目应用的插件匹配
比如只给应用了Java插件的子项目添加依赖:
def dependency_p = new org.gradle.plugins.ide.eclipse.model.ProjectDependency('/dependency-1') dependency_p.exported = true subprojects { plugins.withId('java') { eclipse.classpath.file { whenMerged { classpath -> classpath.entries << dependency_p } } } }
小提示
你之前尝试的subproject.eclipse.classpath.file写法不太准确,Gradle里没有单数的subproject属性,正确的是用复数subprojects块或者直接指定project(':子项目路径')。
另外,如果dependency-1本身是你项目中的子模块,建议用项目引用代替硬编码路径,这样更灵活:
def dependencyProject = project(':dependency-1') def dependency_p = new org.gradle.plugins.ide.eclipse.model.ProjectDependency(dependencyProject.path) dependency_p.exported = true
内容的提问来源于stack exchange,提问作者qualitytime_dev
相关产品推荐
相关产品推荐

