2017-02-22 101 views
0

我想要做這樣的事情:如何從父項目來源依賴

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

但我找不到這樣的functionallity,我搜索的文檔中,但沒有什麼,除了指定分類器對真實的依賴關係。

那麼有沒有一種方法可以將Gradle multimodules項目中父項目的源添加爲依賴項?

+0

有什麼用有'來源'的情況依賴「?通常你依賴於編譯的類。 –

+0

@MartinLinha gwt編譯需要類路徑中的源碼 – jmattheis

回答

0

我不知道,有一個從搖籃爲特色,但有一個解決辦法:

  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) 
    } 
    
0

了projectA /的build.gradle

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

項目B /的build.gradle

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

DependencyHandler.project(Map)

+0

這可能是更好的解決方案,缺點是Intellij IDEA忽略該屬性。 – jmattheis

+0

http://stackoverflow.com/help/someone-answers –

+0

@jmattheis可以使用理念插件的gradle idea任務來刷新.iml文件;)IntelliJ gradle支持從來都不是完美的 – LazerBanana