2012-10-05 58 views
7

我想用Gradle構建一個war文件,但我遇到了一個問題,不包括一個目錄,並且包含另一個碰巧具有相同名稱但不同父目錄的問題。Gradle:戰爭任務有衝突包含/排除

請在下面的第一個代碼示例注意既不被包含在最終的war文件css/目錄 - 我想是因爲搖籃認爲我要排除命名css/不管其絕對路徑的任何目錄

基本上我想排除src/main/webapp/css和包括build/tmp/css因爲後者包含縮小的代碼。我怎樣才能做到這一點?我嘗試過以各種方式指定絕對路徑,但沒有取得任何成功。

war { 
    dependsOn minify 
    from('build/tmp/') { include ('css/') } 
    exclude('WEB-INF/classes/', 'css/') 
} 

如果我不排除css/像這樣:

war { 
    dependsOn minify 
    from('build/tmp/') { include ('css/') } 
    exclude('WEB-INF/classes/') 
} 

那麼結果是,無論是微細化以及非縮小的代碼包含。

回答

5

我不知道你爲什麼在你的build.gradle排除WEB-INF/classes/css代替src/main/webapp/css,但複製縮小的CSS文件,而不是在原有的通過以下步驟實現:

apply plugin: 'war' 

war { 
    // dependsOn 'minify' 

    from 'src/main/webapp' 
    exclude 'css' // or: "exclude 'WEB-INF/classes/css'" 

    from('build/tmp/css') { 
    include '**/*.css' 
    into 'css' // or: "into 'WEB-INF/classes/css'" 
    } 
} 
+0

的'排除目的(「WEB -INF/classes /','css /')'是實際排除這兩個目錄。 'css /'不在'classes'裏面。除此之外,進入'css'似乎確實有用。 – david