我正在爲此撕掉我的頭髮。我已經將我的腳本剝離回Gradle教程頁面提供的代碼,因爲我認爲我要麼做根本錯誤的事情,要麼誤解了一個多項目應用程序應該如何使用gradle進行結構化。使用Gradle構建多java項目
我在eclipse中有三個java項目,所有這三個腳本都包含一個build.gradle腳本,並且只包含一個settings.gradle腳本。結構如下:
Scripts
-- build.gradle
-- settings.gradle
Database
-- build.gradle
Services
-- build.gradle
我試圖建立「數據庫」,並使用在「腳本」項目的生成腳本「服務」項目。要創建項目樹,我在settings.gradle以下代碼:
include 'Services', 'Database'
project (':Services').projectDir = new File(settingsDir, "../Services")
project (':Database').projectDir = new File(settingsDir, "../Database")
複製在多項目教程中的代碼(gradle這個文檔),我試圖讓每一個構建腳本打印的出一些文字,以確保一切正確設置。我的最終目標是在執行'eclipseClasspath'時正確構建依賴關係,以便所有項目在eclipse中正確編譯。但是,文本沒有按照我的預期打印出來!
下面是什麼是包含三個構建腳本中:
腳本的build.gradle
allprojects {
task hello << { task -> println "I'm $task.project.name" }
}
subprojects {
hello << {println "- I depend on Scripts"}
}
數據庫的build.gradle
hello.doLast {
println "- I'm inside database"
}
服務的build.gradle
hello.doLast {
println "- I'm inside services"
}
在該「腳本」項目,當我運行「gradle這個-q你好」,我得到如下結果:
I'm Scripts
I'm AnprDatabase
- I depend on Scripts
I'm Database
- I depend on Scripts
爲什麼文本「 - 我在裏面的數據庫」和「 - 我在裏面服務'沒有出現?我有點困惑。我只能猜測它與我的項目結構有關。有人可以證實這種情況嗎?如果不是,問題是什麼?如前所述,我已將我的腳本剝離回這個簡單示例,因爲我無法使用相同的結構在每個項目構建腳本中運行依賴項。
非常感謝您提供的任何幫助。
對我來說很好,'gradle-1.0-milestone-3' – axtavt
我使用相同版本的gradle。您的應用程序是否包含與我的結構相同的Java項目? – ScreamingMage
對於你的另一個問題,你的構建腳本是從你的等效'腳本'項目中運行還是在三個項目的根源?我想嘗試在'腳本'項目中運行我的腳本 – ScreamingMage