2016-05-31 37 views
0

在我的項目中,我們使用gradle進行布爾戰爭。這個項目採用了MVC結構,我們使用了spring技術,現在我們有了一個三層控制器,服務,DAO層 ,但在彈簧注入的支持下,我們可以將DAO層注入到控制器(視圖層)的服務層和服務層中,但可以我們限制將dao層注入控制器層 並將服務層注入到dao層,如果我們嘗試這樣做,而構建戰爭gradle則無法構建。如何在不使用dupliactes .class文件的情況下構建戰爭並使用gradle不包括java文件

要,如果我們嘗試注入DAO層到控制層的構建過程西港島線得到失敗的。問題就在這裏同時建設完成這項任務,我已經通過上面的修改做做過的build.gradle

sourceSets { 
    gen { 
     java { 
      srcDir 'app/GeneratedSource' 
     } 
    } 

    dao { 
     java { 
      srcDir 'app/JavaSource' 
      exclude 'gov/fd/vc/svc/**' 
     } 
     compileClasspath += gen.output 
    } 

    svc { 
     java { 
      srcDir 'app/JavaSource' 
      exclude 'gov/fd/vc/dao/**' 
     } 
     compileClasspath += gen.output 
     compileClasspath += dao.output 
    } 

    main { 
     java { 
      srcDir 'web/JavaSource' 
     } 
     resources { 
      srcDir 'app/GeneratedSource' 
      srcDir 'app/JavaSource' 
      srcDir 'web/JavaSource' 
     } 
     compileClasspath += svc.output 
    } 
} 

configurations { 
    genCompile.extendsFrom compile 
    daoCompile.extendsFrom compile 
    svcCompile.extendsFrom compile 
} 

的變化戰爭中所有的.java和重複的.class文件都會生成並在 中看到目標目錄結構。

回答

0

只要改變主到現在,Java將有沒有重複的戰略,包括.java文件的戰爭

sourceSets { 
     gen { 
      java { 
       srcDir 'app/GeneratedSource' 
      } 
     } 

     dao { 
      java { 
       srcDir 'app/JavaSource' 
       exclude 'gov/fd/vc/svc/**' 
      } 
      compileClasspath += gen.output 
     } 

     svc { 
      java { 
       srcDir 'app/JavaSource' 
       exclude 'gov/fd/vc/dao/**' 
      } 
      compileClasspath += gen.output 
      compileClasspath += dao.output 
     } 

     debug { 
      java { 
       srcDir 'web/JavaSource' 
      } 
      resources { 
       srcDir 'app/GeneratedSource' 
       srcDir 'app/JavaSource' 
       srcDir 'web/JavaSource' 
      } 
      compileClasspath += svc.output 
     } 
    } 

    configurations { 
     genCompile.extendsFrom compile 
     daoCompile.extendsFrom compile 
     svcCompile.extendsFrom compile 
    } 
相關問題