नहीं होनी चाहिए, मैं एक वसा जार रखना चाहता हूं लेकिन प्रदान की गई निर्भरताओं के बिना। तो मैं निम्नलिखित दो प्लग इन का उपयोग:ग्रेडल छाया प्लगइन पैकेज भी सभी "प्रदत्त" निर्भरताएं जो
- https://github.com/johnrengelman/shadow
- https://github.com/nebula-plugins/gradle-extra-configurations-plugin
और इस तरह एक build.gradle फ़ाइल है:
apply plugin: 'nebula.provided-base'
apply plugin: 'com.github.johnrengelman.shadow'
archivesBaseName = 'range-cache-drivers'
group = 'com.engine'
version = '0.302-SNAPSHOT'
buildDir = 'target'
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
provided project(':rangeCache')
// CSV, TSV, Fixe width
compile deps.univocityParsers
// MongoDB
compile deps.mongo
// Cassandra
compile deps.cassandradx
compile deps.cassandraSnappy
compile deps.cassandraLZ4
}
लेकिन मैं अभी भी है जब मैं gradle shadowJar
चलाने मेरी वसा जार में सभी रेंज कैश कक्षाएं। मैं अपनी वसा जार से प्रदान की गई निर्भरताओं को कैसे बहिष्कृत कर सकता हूं?
संपादित करें 1: ऐसा लगता है कि काम नहीं करना है, क्षणिक निर्भरता अभी भी वसा जार में कॉपी हो रही है।
shadowJar {
dependencies {
exclude(project(':rangeCache'))
}
}
संपादित करें 2:
configurations {
shadow
compile.extendsFrom provided
provided.extendsFrom shadow
}
dependencies {
provided project(':rangeCache')
// CSV, TSV, Fixe width
shadow deps.univocityParsers
// MongoDB
shadow deps.mongo
// Cassandra
shadow deps.cassandradx
shadow deps.cassandraSnappy
shadow deps.cassandraLZ4
testCompile deps.junit
}
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
task fatJar(type: ShadowJar) {
configurations = [project.configurations.shadow]
from(project.sourceSets.main.output)
}
यह धन परियोजनाओं के साथ काम नहीं करता है। हालांकि मैं लिंक किए गए ब्लॉग पोस्ट में समाधान संख्या 3 के लिए गया था जो काफी अच्छी तरह से काम कर रहा है – KIC