2017-02-24 84 views

回答

1

使他們沒有收拾戰爭中你可以在compileOnly配置聲明的依賴關係。

dependencies { 
    compileOnly 'a:a:1.0' 
    compileOnly 'b:b:2.0' 
} 

然後,你可以從compileOnly配置創建一個超級罐子

task uberJar(type: Jar) { 
    configurations.compileOnly.files.each { File jar -> 
     from zipTree(jar) 
    } 
    classifier = 'uber' 
} 
artifacts { 
    archives uberJar 
} 

然後你可以在尤伯杯的jar複製到%TOMCAT_HOME%/lib

+0

它排除的依賴,但沒有在包裝的依賴限制gradle這個戰爭檔案 –

+0

我把它做出來了。這是bootrepackage的問題。我知道能夠創建戰爭,但jar文件嵌入了不同版本的tomcat。當我把罐子在$ tomcat的/ libs文件夾'java.lang.NoSuchMethodError:org.apache.tomcat.util.buf.B2CConverter。發生;(Z Ljava /郎/字符串)V' 。我如何排除嵌入的tomcat? –

+0

爲什麼你需要在你的編譯時間依賴tomcat的?我能想到的唯一原因就是測試。在這種情況下,應該在'testCompile'或'testRuntime'配置中聲明tomcat依賴關係 –