1. 程式人生 > >Gradle中使用SpringBoot外掛構建多模組遇到的問題

Gradle中使用SpringBoot外掛構建多模組遇到的問題

通常下,多模組的專案如下:

    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']
            }
        }
    }