我正在開發一個Apache Ant項目的演變過程,以便使用Gradle對其進行編譯,並且我有不同的子項目集。如何使用另一個模塊的調試類來編譯Gradle子項目
我的目標是使用主項目的輸出作爲一些子項目的依賴項。全局配置如下:
MainProject:
-> src/main/java
-> src/main/resources
-> src/test/java
-> src/test/resources
-> src/mocks/java
ChildProject1:
-> src/main/java
-> src/main/resources
-> src/test/java
-> src/test/resources
-> src/mocks/java
主項目正確包含在子構建路徑中,並且在鏈接Eclipse時正確找到所有鏈接。
我已經包含在settings.gradle
文件的ChildProject
主體工程及其在構建依賴關係:
dependencies {
compile project(':MainProject')
}
我的問題是,ChildProject
需要從嘲笑/ java的輸出來編譯,雖然它似乎Gradle編譯過程確實包含了作爲main/java文件的「默認」輸出,我收到一條錯誤消息,指出無法找到來自mocks的「符號」。
我曾與所需的嘲笑MainProject
測試java文件編譯類似的問題被使用,它被添加解決:
sourceSets {
mocks {
java {
srcDir 'src/mocks/java'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
test {
compileClasspath += sourceSets.mocks.output
runtimeClasspath += sourceSets.mocks.output
}
}
的模擬源正確添加到測試類路徑中。
如何告訴我的ChilProject
使用MainProject
的模擬輸出來編譯測試?
感謝您的回答,我正在嘗試從您的建議開始解決我的問題。 然而,我不知道我應該如何在我的主項目中聲明工件,我沒有從例如我知道配置塊在這裏定義不同的源代碼編譯過程那裏得到「configuration {mocks}」這一行。 我從來沒有使用Gradle中的工件,並且我發現Gradle官方文檔不清楚。 感謝您的幫助,期待下一個答案!! –
抱歉,關於雙重帖子,我沒有在配置中添加「mocks」(雖然我不知道這是做什麼...)和編譯過程順利,但我不能確定在你的例子中的後面的神器/ jar聲明應該是,你能精確嗎? –
你可以把1.節在主構建文件的末尾,'jarMocks'應該是用'mocks'源代碼集中定義的模擬源代碼構建JAR的任務,因爲mcoks JA R缺少主要的類文件,我更新了2.節的答案。 – cmcginty