2017-07-08 64 views
0

如果傳遞庫不packagedJAR任務:什麼對脂肪JAR的gradle這個選擇嗎?

By default, jar task in gradle builds an executable jar file from your project source files. It will not contain any transitive libs that are needed for your program. 

相反,Netbeans的確實JAR依賴或傳遞庫。而不是脂肪JAR如何gradle這個包括庫?

plugins { 
    id 'com.gradle.build-scan' version '1.8' 
    id 'java' 
    id 'application' 
} 


mainClassName = 'net.bounceme.dur.mbaas.json.Main' 


buildScan { 
    licenseAgreementUrl = 'https://gradle.com/terms-of-service' 
    licenseAgree = 'yes' 
} 

repositories { 
    jcenter() 
} 


jar { 
    manifest { 
     attributes 'Main-Class': 'net.bounceme.dur.mbaas.json.Main' 
    } 
} 

dependencies { 
    //compile fileTree(dir: 'libs', include: ['*.jar']) 
    runtime group: 'com.google.firebase', name: 'firebase-admin', version: '5.2.0' 
    compile fileTree(dir: 'lib', include: '*.jar') 
} 
有關

another問題:什麼是「道」來包裝與JAR任務,不會導致「肥胖JAR」庫?

+1

http://imperceptiblethoughts.com/shadow/ – Salem

+0

你真的在問[如何用Gradle創建一個胖罐子](https://www.google.com/search?q=how+to +創建+ A +脂肪+罐+使用+搖籃和OQ =如何+創建+ A +脂肪+罐+使用+搖籃&AQS = chrome..69i57.133j0j7&的SourceID =鉻&即= UTF-8)?因爲「對於胖JAR來說,什麼是gradle替代物?」的答案?是「不要製造一個肥缸」。 –

+0

都在這個脂肪JAR文件:http://paste.ubuntu.com/25048768/,而不是包括他們** **內脂肪JAR我想非脂肪JAR。但是,我也希望這些JAR在類路徑上。不只是在類路徑上,而是在他們自己的目錄中。我不知道的術語,但這樣的:https://docs.oracle.com/javase/tutorial/deployment/jar/downman.html – Thufir

回答

1

當使用應用的插件,由應用程序(自己的jar或可傳遞的庫)中使用的所有庫放入庫文件夾時,作爲一個應用程序包裝。那麼在啓動應用程序時,這些庫在shell或批處理腳本中將作爲類路徑引用。

創造一個gradle這個fatjar最簡單的方法,就是通過插件門戶中使用現有的陰影插件。詳情請見https://plugins.gradle.org/plugin/com.github.johnrengelman.plugin-shadow

+0

我必須問這個問題是錯誤的。我如何創建一個非脂肪的jar和libs? – Thufir

+0

更新了我的答案。希望有所幫助 –