如何从父项目中获取源作为依赖项

时间:2017-02-22 11:43:32

标签: java gradle dependencies

我想做这样的事情:

dependencies {
    compile project(':projectA', classifier: 'sources')
}

但是我无法找到这样的功能,我在文档中搜索过,但除了在真正的依赖项上指定分类器之外什么也没有。

那么有一种方法可以将Gradle multimodules项目中父项目的源添加为依赖项吗?

2 个答案:

答案 0 :(得分:0)

我不知道Gradle有一个功能,但有一个解决方法:

  1. packageSources添加到应提供来源的项目

    // projectA/build.gradle   
    
    project.task("packageSources", type: Jar) {
        classifier = 'sources'
        from { project.sourceSets.main.allSource }
    }
    
  2. 依赖compileJava您需要资源的任务

    // projectB/build.gradle
    
    compileJava.dependsOn tasks.getByPath(':projectA:packageSources')
    
  3. 将源添加为依赖项

    // projectB/build.gradle
    
    dependencies {
        compile files(tasks.getByPath(':projectA:packageSources').archivePath)
    }
    

答案 1 :(得分:0)

了projectA /的build.gradle

configurations {
    sources 
}
dependencies {
    sources sourceSets.main.allSource
}

项目B /的build.gradle

dependencies {
    compile project(path: ':projectA', configuration: 'sources')
}

请参阅DependencyHandler.project(Map)

相关问题