通常下,多模塊的項目如下:
Root project 'demospring'
+--- Project ':model'
\--- Project ':rest'
那么我們需要在rest模塊依賴model模塊,也非常簡單,方式如下:
compile project(":model")
通常情況,我們運行項目時不會有錯的,但是你執行gradle的build任務時,坑爹的地方就來了,會報類似如下的錯誤:
:model:build
:rest:compileJava
/Users/xxxxx/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/Application.java:19: error: cannot find symbol
CommandLineRunner init(AccountRepository accountRepository,
^
symbol: class AccountRepository
location: class Application
/Users/xxxxx/Documents/SourceTree/demospring/rest/src/main/java/bookmarks/Application.java:20: error: cannot find symbol
BookmarkRepository bookmarkRepository) {
.......
這個原因是springboot的gradle插件不能直接引用類路徑下的其他依賴,我想這么做它無非是保證服務的獨立性,但是往往實際開發中,我們項目之間肯定會涉及模塊之間的依賴,那怎么解決呢?
可以參考如下的配置:
sourcesets{
main{
java{
srcDirs=['src/main/java','.../依賴的模塊/src/main/java']
}
}
}