[英]How do I include a single dependency in my JAR with Gradle?
我從Gradle開始,我想知道如何在我的JAR中包含單個依賴項(在我的情況下是TeamSpeak API),以便它可以在運行時使用。
這是我的build.gradle的一部分:
apply plugin: 'java'
compileJava {
sourceCompatibility = '1.8'
options.encoding = 'UTF-8'
}
jar {
manifest {
attributes 'Class-Path': '.......'
}
from {
* What should I put here ? *
}
}
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '4.3.7.Final'
compile group: 'org.spigotmc', name: 'spigot', version: '1.8-R0.1-RELEASE'
// Many other dependencies, all available at runtime...
// This one isn't. So I need to include it into my JAR :
compile group: 'com.github.theholywaffle', name: 'teamspeak3-api', version: '+'
}
謝謝你的幫助 :)
最簡單的方法是從要包含的依賴項的單獨配置開始。 我知道您只詢問了一個jar,但如果您為新配置添加更多依賴項,此解決方案將起作用。 Maven有一個眾所周知的名稱叫做provided
這種東西,所以我們將使用它。
configurations {
provided
// Make compile extend from our provided configuration so that things added to bundled end up on the compile classpath
compile.extendsFrom(provided)
}
dependencies {
provided group: 'org.spigotmc', name: 'spigot', version: '1.8-R0.1-RELEASE'
}
jar {
// Include all of the jars from the bundled configuration in our jar
from configurations.provided.asFileTree.files.collect { zipTree(it) }
}
通過provided
作為配置的名稱也很重要,因為當瓶子被發布后,您在有任何依賴性provided
的配置將顯示為provided
在獲取與發布的JAR pom.xml中。 Maven依賴解析器不會提取所provided
依賴項,並且jar的用戶不會在類路徑上以類的重復副本結束。 請參閱Maven依賴范圍
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.