2017-09-11 195 views
0

我有以下目錄結構的多項目gradle這個項目:搖籃 - 在多項目路徑建立

+ project_root 
    + module1 
     + src 
     build.gradle 

    + module2 
     + src 
     build.gradle 

    + web 
     .. 

    build.gradle 
    settings.gradle 

在除其他事項外module1/build.gradle我指定:

compileKotlin2Js.kotlinOptions { 
    outputFile = "web/script.js" 
} 

這是一個指定編譯的JS文件的輸出文件路徑的特殊Kotlin JS設置。

現在我的問題是,當我編譯整個項目(project_root/build.gradle)的文件在正確的目錄(project_root/web)結束了,但是當我不小心運行建立單獨的模塊上的文件被保存在模塊目錄(project_root/module1/web )。

如何在我的構建腳本中修復路徑,因此無論我運行哪個構建腳本(不指定完整路徑,我想要相對路徑),文件輸出都將保存在完全相同的目錄中?

回答

1

我不知道Gradle插件需要代碼示例中的路徑參數,但所有常規(非第三方)Gradle插件通過Project.files(Object...)來評估路徑參數,以避免從各個工作目錄調用Gradle時的不同位置。

我會建議使用上述方法(或其單個文件版本Project.file(Object))以及。你甚至可以省略project部分,因爲build.gradle文件被在項目範圍內執行:

compileKotlin2Js.kotlinOptions { 
    outputFile = file('web/script.js') 
} 

這相對於你的build.gradle屬於該項目的項目目錄的路徑始終評估。要評估與根項目的項目目錄相關的文件,請使用rootProject.files(Object...)獲取相對於子項目的項目目錄或生成中的任何項目的路徑,請使用project(':path:to:project').files(Object...)